История изменений
Исправление makoven, (текущая версия) :
Мало того, что у тебя неверные представления о возможностях декларативности
Собственно, я systemd и полюбил когда понадобилось запускать свою програму в виде сервиса. Програма ничего не делает чтобы ствть демоном - не форкается, не хранит PID. Долго курил sysvinit - не осилил. Первый юнит-файл написал за неделю (после прочтения всего блога Лёни и манов). Второй - за 5 минут) Получил автоматический рестарт при зависании и превышении порога памяти, сокет-активацию, правильное управление зависимостями (от двух других програм). И еще некоторые приятные плюшки. И все это в файлах несколько строчек каждый. Которые работают в арчике и федоре без изменений.
так ты еще и не знаешь, что в юниты можно встраивать код на shell (и его встраивают)
У меня опции qemu прям в юнит-файлы встроены. В системе такого не встречал. Три файла с /bin/sh нашлось из 292:
grep -rn /usr/lib/systemd/system -e «\/bin\/sh» /usr/lib/systemd/system/emergency.service:21:ExecStart=-/bin/sh -c «/sbin/sulogin; /usr/bin/systemctl --fail --no-block default» /usr/lib/systemd/system/rescue.service:21:ExecStart=-/bin/sh -c «/sbin/sulogin; /usr/bin/systemctl --fail --no-block default» /usr/lib/systemd/system/debug-shell.service:17:ExecStart=/bin/sh
Исходная версия makoven, :
Мало того, что у тебя неверные представления о возможностях декларативности
Собственно, я systemd и полюбил когда понадобилось запускать свою програму в виде сервиса. Програма ничего не делает чтобы ствть демоном - не форкается, не хранит PID. Долго курил sysvinit - не осилил. Первый юнит-файл написал за неделю (после прочтения всего блога Лёни и манов). Второй - за 5 минут) Получил автоматический рестарт при зависании и превышении порога памяти, сокет-активацию, правильное управление зависимостями (от двух других програм). И еще некоторые приятные плюшки.
так ты еще и не знаешь, что в юниты можно встраивать код на shell (и его встраивают)
У меня опции qemu прям в юнит-файлы встроены. В системе такого не встречал. Три файла с /bin/sh нашлось из 292:
grep -rn /usr/lib/systemd/system -e «\/bin\/sh» /usr/lib/systemd/system/emergency.service:21:ExecStart=-/bin/sh -c «/sbin/sulogin; /usr/bin/systemctl --fail --no-block default» /usr/lib/systemd/system/rescue.service:21:ExecStart=-/bin/sh -c «/sbin/sulogin; /usr/bin/systemctl --fail --no-block default» /usr/lib/systemd/system/debug-shell.service:17:ExecStart=/bin/sh