Systemd конечно оч. хорошо, но и
Supervisor прекрасно справляется с такими задачами.
Я, например, и многие мои собратья по Проксе-Пепсика (на Python3) запускаем её, как раз через
Supervisor, что весьма удобно.
Всё просто.
Сначала устанавливаете его:
sudo apt install supervisor
Теперь -
ОБЯЗАТЕЛЬНО! - создаём конфигурационный файл:
sudo sh -c 'echo_supervisord_conf > /etc/supervisor/supervisord.conf'
Если этого не сделать, то в папке
/etc/supervisor будет лежать очень урезанный и бедный на настройки
supervisord.conf файл и многие параметры придётся дописывать руками!
Судите сами:
- это урезанный файл после установки Supervisor
Урезанный supervisord.conf; supervisor config file
[unix_http_server]
file=/var/run/supervisor.sock ; (the path to the socket file)
chmod=0700 ; sockef file mode (default 0700)
[supervisord]
logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log)
pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
childlogdir=/var/log/supervisor ; ('AUTO' child log dir, default $TEMP)
; the below section must remain in the config file for RPC
; (supervisorctl/web interface) to work, additional interfaces may be
; added by defining them in separate rpcinterface: sections
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl]
serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL for a unix socket
; The [include] section can just contain the "files" setting. This
; setting can list multiple files (separated by whitespace or
; newlines). It can also contain wildcards. The filenames are
; interpreted as relative to this file. Included files *cannot*
; include files themselves.
[include]
files = /etc/supervisor/conf.d/*.conf