SystemD
Полезные команды
# --- systemd timers
# полезно, если нужно узнать про автообновление сертификатов certbot
systemctl list-timers
Logs
Управление логгированием в systemd
# получение журнала сервиса
journalctl -u cadvisor
Запускаем программу как сервис
# создаем специального пользователя
sudo useradd -rs /bin/false node_exporter
# создаем сервисный файл
sudo vim /etc/systemd/system/node_exporter.service
Содержание сервисного файла
[Unit]
Description=Node Exporter
After=network.target
[Service]
User=node_exporter
Group=node_exporter
Type=simple
Environment="SECRET=secret"
Environment="SECRET_2=anothersecret"
ExecStart=/usr/local/bin/node_exporter
WorkingDirectory=/home/ubuntu/weather
StandardOutput=append:/var/log1.log
StandardError=append:/var/log2.log
[Install]
WantedBy=multi-user.target
Аргументы в команде ExecStart передаются обычным образом
ExecStart=/usr/local/bin/node_exporter --foo=bar
Команд ExecStart может быть несколько. Если для [Service] не заданы User и Group, то сервис запускается от root
Продолжаем...
# перезагружаем системный демон
sudo systemctl daemon-reload
# запускаем программу как сервис
sudo systemctl start node_exporter
# проверяем статус
sudo systemctl status node_exporter
# добавляем в автозапуск
sudo systemctl enable node_exporter
# удаляем из автозапуска
sudo systemctl disable node_exporter
# останавливаем сервис
sudo systemctl stop node_exporter