systemd
Разберем работу с systemd на примере службы запуска vpn
Создание нового сервиса
Создаем файл по адресу /etc/systemd/system/vpn.service следующего содержания:
[Unit]
After=network.target
[Service]
ExecStart=/usr/local/bin/start-vpn.sh
User=user
Restart=always
[Install]
WantedBy=default.targetAfter=network.target - означает, что нашу службу надо запускать после того, как будет поднята сеть. В зависимости от целей службы могут быть и другие таргеты, нужно гуглить.
ExecStart=/usr/local/bin/start-vpn.sh - адрес скрипта, который нужно запустить. Содержание скрипта любое.
User=user - указать пользователя, под которым будет запускаться служба. 
Restart=always - что делать, если служба упала. Эта настройка указывает, что нужно несколько раз пытаться перезапустить службу с интервалом в 100мс между попытками. Если все попытки неудачны, то systemd сдается.
WantedBy=default.target - к какому таргету относится сама наша служба. Дефолтного в большинстве случаев должно хватить.
Регистрация сервиса
После создания сервис нужно зарегистрировать.
Для начала перезапускаем systemd, чтобы он увидел наш vpn.service:
sudo systemctl daemon-reloadПотом регистрируем:
sudo systemctl enable vpnПротестировать запуск службы можно так:
sudo systemctl start vpnЛоги
Просмотр логов службы:
sudo journalctl -u vpn.service