Syntax highlighting of linux/systemd

# SystemD

[TOC]

## Полезные команды

```bash
# --- systemd timers
#     полезно, если нужно узнать про автообновление сертификатов certbot
systemctl  list-timers
```

## Logs

[Управление логгированием в systemd](https://blog.selectel.ru/upravlenie-loggirovaniem-v-systemd/)

```bash
# получение журнала сервиса
journalctl -u cadvisor
```


## Запускаем программу как сервис

[Источник](https://devopscube.com/monitor-linux-servers-prometheus-node-exporter/)


```bash
# создаем специального пользователя
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`

Продолжаем...
```bash
# перезагружаем системный демон
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
```