# Systemd

![](/Linux/System/Systemd/systemd.jpg)

Systemd - Система управления службами и служба инициализации. 

## Пример запуска службы
Создадим фаил /etc/systemd/system/my-app.service
```
[Unit]
Description=My APP Service
After=multi-user.target

[Service]
Type=simple
# Указываем рабочую папку
WorkingDirectory=/home/user/my_app_folder
# Запускаем приложение
ExecStart=myapp --debug
# От пользователя user
User=user

# Always restart
Restart=always

[Install]
# system wide service
WantedBy=multi-user.target
```
Далее рестартим systemd чтобы перечитались все unit файлы, и запускаем службу. Последней командой смотрим статус службы
```
sudo systemctl daemon-reload
sudo systemctl start my-app
sudo systemctl status my-app
```
Для автозапуска пишем
```
sudo systemctl enable my-app
```
## Пример запуска службы на примере java приложения
Создадим фаил /etc/systemd/system/java-app.service
```
[Unit]
Description=Manage Java service

[Service]
WorkingDirectory=/home/user/my-java-app-folder
ExecStart=/bin/java -jar java-app.jar
User=user
Type=simple
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target
```
Дальше по аналогии как и с предыдущим пунктом
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9