Назад | Перейти на главную страницу

Systemd отказывается запускать службу, когда StandardInput отключен в служебном файле

Мне нужно сделать службу, работающую под TTY.

Пробовал миллион комбинаций и конфигураций, и все, что я пробовал, привело к тому, что служба вообще не запускалась, если в файле службы systemd определено значение StandardInput = tty / force-tty / or-something-I -pting.

Это одна из наиболее общих комбинаций, которые я пробовал:

[Unit]
Description=My service
After=getty.target
After=clone.service
Conflicts=getty@tty1.service


[Service]
User=my-service-user
Type=forking
ExecStart=/opt/mysoftware/javafile.war start
ExecStop=/opt/mysoftware/javafile.war stop
WorkingDirectory=/opt/mysoftware
StandardInput=tty
StandardOutput=tty
TTYPath=/dev/tty21


[Install]
WantedBy=multi-user.target

Когда StandardInput определен, я получаю такой статус:

[root@my-system ~]#systemctl status my.service
в—Џ my.service - My Service
   Loaded: loaded (/usr/lib/systemd/system/my.service; enabled; vendor preset: disabled)
   Active: inactive (dead) since Mon 2020-05-11 16:57:01 EEST; 3s ago
  Process: 2241 ExecStop=/opt/mysoftware/javafile.war stop (code=exited, status=0/SUCCESS)
  Process: 2226 ExecStart=/opt/mysoftware/javafile.war start (code=exited, status=0/SUCCESS)
 Main PID: 1941 (code=exited, status=143)

May 11 16:56:58 my-system.mydomain.com systemd[1]: Starting My Service...
May 11 16:57:01 my-system.mydomain.com systemd[1]: Started My Service.

После выхода команды systemctl ни один процесс не был запущен, и никакой значимый вывод не отображается. Еще одна попытка запустить службу выглядит так, как будто новые процессы разветвляются, но затем снова убиты / мертвы / не знаю, но не запущены.

[root@my-system ~]#systemctl status my.service
в—Џ my.service - My Service
   Loaded: loaded (/usr/lib/systemd/system/my.service; enabled; vendor preset: disabled)
   Active: inactive (dead) since Mon 2020-05-11 17:16:05 EEST; 2s ago
  Process: 2330 ExecStop=/opt/mysoftware/javafile.war stop (code=exited, status=0/SUCCESS)
  Process: 2315 ExecStart=/opt/mysoftware/javafile.war start (code=exited, status=0/SUCCESS)
 Main PID: 1941 (code=exited, status=143)

May 11 17:16:02 my-system.mydomain.com systemd[1]: Starting my Service...
May 11 17:16:05 my-system.mydomain.com systemd[1]: Started my Service.

Таким образом, некоторые процессы разветвляются, но «Основной PID» остается неизменным при всех попытках запустить службу, и я не знаю почему.