On Fri, 24 May 2019 04:49:17 +0300 sergio <ser...@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]# > >