Re: systemd inittab
On Fri, 24 May 2019 04:49:17 +0300
sergio <sergio@outerface.net> wrote:
> On 23/05/2019 10:26, Victor Wagner wrote:
>
>
> > Написать unit-файл, который будет это делать. И кстати и respawn
> > средствами systemd организовать можно будет.
>
> Написал, как дебажить?
Я бы использовал для запуска процессов на свободном терминале
программу openvt. Она и переменные среды выставит какие надо, и
настройки терминала.
Судя по тому, что написано ниже, терминал настраивать tty_clock и сам
умеет. Но, будучи честной программой на ncurses, нуждается в переменной
TERM указывающей, какой тип терминала.
Если мы видим, что процесс убит сигналом, надо в первую очередь
разрешить ему оставлять core dump.
Добавив для этого в unit-файл строчку LimitCORE=infinity, ну и
позаботившись о том, чтобы текущая директория процесса была доступна
ему на запись (либо чтобы ядро знало, что надо core в какое-то другое
место писать).
>
> # cat /etc/systemd/system/tty_clock.service
> [Unit]
> Description=tty-clock
>
> [Service]
> Environment="LANG=ru_RU.UTF-8 TERM=linux"
> ExecStart=/usr/bin/tty-clock -x -s -c -C 7 -f '%%F %%A' -T /dev/tty10
> ExecStartPost=chvt 10
> Restart=on-failure
>
> [Install]
> WantedBy=default.target
>
>
> # systemctl status tty_clock.service
> ● tty_clock.service - tty-clock
> Loaded: loaded (/etc/systemd/system/tty_clock.service; enabled;
> vendor preset: enabled) Active: failed (Result: signal) since Fri
> 2019-05-24 04:41:08 MSK; 5s ago Process: 13038
> ExecStart=/usr/bin/tty-clock -x -s -c -C 7 -f %F %A -T /dev/tty10
> (code=killed, signal=ABRT) Process: 13039 ExecStartPost=/bin/chvt 10
> (code=exited, status=0/SUCCESS) Main PID: 13038 (code=killed,
> signal=ABRT)
>
> systemd[1]: tty_clock.service: Service RestartSec=100ms expired,
> scheduling restart. systemd[1]: tty_clock.service: Scheduled restart
> job, restart counter is at 5. systemd[1]: Stopped tty-clock.
> systemd[1]: tty_clock.service: Start request repeated too quickly.
> systemd[1]: tty_clock.service: Failed with result 'signal'.
> systemd[1]: Failed to start tty-clock.
> systemd[1]: tty_clock.service: Start request repeated too quickly.
> systemd[1]: tty_clock.service: Failed with result 'signal'.
> systemd[1]: Failed to start tty-clock.
>
>
>
>
> Так работает:
>
> [Service]
> ExecStart=/usr/local/bin/tty_clock
>
>
> # cat /usr/local/bin/tty_clock
> #!/bin/sh
>
> LANG=ru_RU.UTF-8 TERM=linux /usr/bin/tty-clock -x -s -c -C 7 -f '%F
> %A' -T /dev/tty10 (4:47:08)[root@boo:system]#
>
>
Reply to: