Всем привет, такая проблема: нужно написать юнит-файл для приложения на java.
Он должен падать с ошибкой, если приложение не запустилось. Он должен рестартовать приложение если оно упало. Мой вариант:
[Unit]
Description=some backend service
After=network.target
Wants=nginx.service
[Service]
Type=forking #если сделать type=simple, то юнит не падает с ошибкой, если на старте что-то пошло не так.
User=ec2-user
PIDFile=/opt/some_shit/RUNNING_PID
EnvironmentFile=/etc/default/some_shit_config
#TimeoutStartSec=0
ExecStart=/opt/some_shit/bin/some_shit
Restart=on-failure
SuccessExitStatus=143 # без этой строчки оно думает, что приложение не запустилось, даже если оно запустилось и работает норально
[Install]
WantedBy=multi-user.target
https://www.freedesktop.org/software/systemd/man/systemd.service.html# и прилегающие маны закурил до дыр.
Проблема в том, что после старта сервис не отдаёт консоль и хотелось бы избежать использования --no-block, Кроме того, когда выполняешь
systemctl status some_shit.service
Active: activating (start) since Thu 2017-12-07 08:39:01 PST; 10min 32s ago
active (running)