LINUX.ORG.RU

type oneshot не работает в systemd

 ,


0

1

Создал скрипт

#!/bin/bash
### BEGIN INIT INFO
# Provides: netrules
# Required-Start: $all
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop:
# Short-Description: adds iptables rules
### END INIT INFO

echo "sayhello"

Создал службу

[Unit]
Description=sayhello
Requires=network.target
After=network.target

[Service]
Type=oneshot
RemainAfterExit=True
ExecStart=/etc/init.d/sayhello

[Install]
WantedBy=multi-user.target

запускаю службу, она запускается, но «Type=oneshot» не срабатывает и она висит запущенная (в статусе), хотя должна отработать раз и выключиться.

Почему так? Что исправить, чтобы запускалось 1 раз и выключалось?



Последнее исправление: chart41 (всего исправлений: 1)
RemainAfterExit=False

RemainAfterExit=: Эта директива обычно используется с типом onehot. Это означает, что сервис следует считать активным даже после выхода из процесса.

Источник: Яндекс

egzakharovich
()
Последнее исправление: egzakharovich (всего исправлений: 1)

она и срабатывает один раз и потом завершается. просто впоследствии отмечается в системе, что «работает».
как и указали выше, за это отвечает RemainAfterExit дословный перевод «остается после выхода».
это удобно при определенных действиях.

pfg ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.