Blame
37d68e | Mayekkuzu | 2024-12-15 20:05:26 | 1 | # Systemd |
2 | ||||
f1cd73 | Mayekkuzu | 2024-12-15 20:06:05 | 3 | ![](/Linux/System/Systemd/systemd.jpg) |
37d68e | Mayekkuzu | 2024-12-15 20:05:26 | 4 | |
5 | Systemd - Система управления службами и служба инициализации. | |||
6 | ||||
7 | ## Пример запуска службы | |||
8 | Создадим фаил /etc/systemd/system/my-app.service | |||
9 | ``` | |||
10 | [Unit] | |||
11 | Description=My APP Service | |||
12 | After=multi-user.target | |||
13 | ||||
14 | [Service] | |||
15 | Type=simple | |||
16 | # Указываем рабочую папку | |||
17 | WorkingDirectory=/home/user/my_app_folder | |||
18 | # Запускаем приложение | |||
19 | ExecStart=myapp --debug | |||
20 | # От пользователя user | |||
21 | User=user | |||
22 | ||||
23 | # Always restart | |||
24 | Restart=always | |||
25 | ||||
26 | [Install] | |||
27 | # system wide service | |||
28 | WantedBy=multi-user.target | |||
29 | ``` | |||
30 | Далее рестартим systemd чтобы перечитались все unit файлы, и запускаем службу. Последней командой смотрим статус службы | |||
31 | ``` | |||
32 | sudo systemctl daemon-reload | |||
33 | sudo systemctl start my-app | |||
34 | sudo systemctl status my-app | |||
35 | ``` | |||
36 | Для автозапуска пишем | |||
37 | ``` | |||
38 | sudo systemctl enable my-app | |||
39 | ``` | |||
40 | ## Пример запуска службы на примере java приложения | |||
41 | Создадим фаил /etc/systemd/system/java-app.service | |||
42 | ``` | |||
43 | [Unit] | |||
44 | Description=Manage Java service | |||
45 | ||||
46 | [Service] | |||
47 | WorkingDirectory=/home/user/my-java-app-folder | |||
48 | ExecStart=/bin/java -jar java-app.jar | |||
49 | User=user | |||
50 | Type=simple | |||
51 | Restart=on-failure | |||
52 | RestartSec=10 | |||
53 | ||||
54 | [Install] | |||
55 | WantedBy=multi-user.target | |||
56 | ``` | |||
57 | Дальше по аналогии как и с предыдущим пунктом |