Blame
37d68e | Mayekkuzu | 2024-12-15 20:05:26 | 1 | # Systemd |
2 | ||||
f1cd73 | Mayekkuzu | 2024-12-15 20:06:05 | 3 |  |
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 | Дальше по аналогии как и с предыдущим пунктом |