[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: