systemd и запуск сервиса

Предыстория: собрал (локально) пакет fcron, ибо даже в Factory он устаревший и вообще как-то криво и безумно собранный.

Сам сервис должен стартовать на третьем и пятом ранлевеле. Набросал скрипт запуска в /etc/init.d, благополучно добавил с insserv, полез Yast2 runlevel “активировать”, а он мне про ошибку и systemctl пишет. Забыл! :slight_smile: Написал простенький service-файл:

[Unit]
Description=Periodical command sheduler
After=syslog.target network.target

[Service]
Type=simple
ExecStart=/usr/sbin/fcron -b

[Install]
WantedBy=multi-user.target

положил в /usr/lib/systemd/system/, попытка запуска и на этот раз:

/bin/systemctl start fcron.service вернул 0 (успешно)

но в процессах fcron`а нет! А если просто набрать команду, которая указана в строке ExecStart - запускается (работоспособность пока не проверял, но в процессах появляется).
?? Просьба сказать, где же я туплю))

Теперь запускается… ничего не понимаю!
Как было рекомендовано во всяких how-to, поменял на Type=forking и указал опцию PIDFile, systemctl start fcron.service благополучно завис)) Убрал PIDFile - стало запускаться.

Я конечно понимаю, что “рублю с плеча”, поэтому и интересуюсь. К примеру непонятно, чего там собственно нужно форкать, если итак прописан старт в режиме демона (-b --background Go to background.)

PIDFile это рекомендуемый параметр, а не обязательный.
Что же касается демонизации, то здесь в большей степени надо полагаться на systemd, а не на службу.
А что, если опустить параметр Type.

В качестве эксперимента? А то все ж работает, странности наблюдались только поначалу, и кстати PIDFile я тогда левый указал, сейчас поправил согласно конфигу.
“При SysVinit такого не было!” lol!

В качестве эксперимента?

Да, в качестве эксперимента.