systemd inittab

classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

systemd inittab

sergio-3

Был хост, в /etc/inittab которого было написано:

10:2345:respawn:/usr/local/bin/tty_clock


На хосте стоит libvirt-daemon-system для запуска kvm виртуалок, который
требует systemd, и для которого стоял systemd-shim пока там был stretch.
Я обновил его до buster, systemd-shim на нём нет и systemd там в полный
рост.

1. почему меня после загрузки переключает на 10 vt?

2. как запустить tty_clock на vt 10?


--
sergio.

Reply | Threaded
Open this post in threaded view
|

Re: systemd inittab

Victor Wagner
On Wed, 22 May 2019 23:43:45 +0300
sergio <[hidden email]> wrote:

>
> Был хост, в /etc/inittab которого было написано:
>
> 10:2345:respawn:/usr/local/bin/tty_clock
>
>
> На хосте стоит libvirt-daemon-system для запуска kvm виртуалок,
> который требует systemd, и для которого стоял systemd-shim пока там
> был stretch. Я обновил его до buster, systemd-shim на нём нет и
> systemd там в полный рост.

Может поискать что другое для управления kvm-виртуалками.
Я после некоторой возни с libvirt плюнул и вообще свой скрипт на питоне
написал.



> 1. почему меня после загрузки переключает на 10 vt?

Видимо потому, что переключение был прописно не в inittab а где-то еще.
 
> 2. как запустить tty_clock на vt 10?

Написать unit-файл, который будет это делать. И кстати и respawn
средствами systemd организовать можно будет.
>
>

Reply | Threaded
Open this post in threaded view
|

Re: systemd inittab

sergio-3
On 23/05/2019 10:26, Victor Wagner wrote:

> Может поискать что другое для управления kvm-виртуалками.

Я пробовал, но не нашёл.

> Я после некоторой возни с libvirt плюнул и вообще свой скрипт на
> питоне написал.

Я пробовал, libvirt победил. Требования просты:

1. Запуск при загрузке хоста.
2. Остановка при перезагрузке/выключении хоста.
3. Консоль.


>> 1. почему меня после загрузки переключает на 10 vt?
>
> Видимо потому, что переключение был прописно не в inittab а где-то еще.

И правда, сама строчка "10:2345:respawn:/usr/local/bin/tty_clock" же
ничего не переключает.


--
sergio.

Reply | Threaded
Open this post in threaded view
|

Re: systemd inittab

sergio-3
In reply to this post by Victor Wagner
On 23/05/2019 10:26, Victor Wagner wrote:


> Написать unit-файл, который будет это делать. И кстати и respawn
> средствами systemd организовать можно будет.

Написал, как дебажить?

# 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]#


--
sergio.

Reply | Threaded
Open this post in threaded view
|

Re: systemd inittab

Victor Wagner
In reply to this post by sergio-3
On Fri, 24 May 2019 04:20:39 +0300
sergio <[hidden email]> wrote:

> On 23/05/2019 10:26, Victor Wagner wrote:
>
> > Может поискать что другое для управления kvm-виртуалками.  
>
> Я пробовал, но не нашёл.
>
> > Я после некоторой возни с libvirt плюнул и вообще свой скрипт на
> > питоне написал.  
>
> Я пробовал, libvirt победил. Требования просты:
>
> 1. Запуск при загрузке хоста.
> 2. Остановка при перезагрузке/выключении хоста.
> 3. Консоль.

Ну можно на мой vws посмотреть. Вроде все перечисленное он делает.

https://www.wagner.pp.ru/fossil/vws


Reply | Threaded
Open this post in threaded view
|

Re: systemd inittab

Victor Wagner
In reply to this post by sergio-3
On Fri, 24 May 2019 04:49:17 +0300
sergio <[hidden email]> 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 | Threaded
Open this post in threaded view
|

Re: systemd inittab

sergio-3
In reply to this post by Victor Wagner
On 24/05/2019 09:51, Victor Wagner wrote:

> Ну можно на мой vws посмотреть. Вроде все перечисленное он делает.
>
> https://www.wagner.pp.ru/fossil/vws

SPICE ради serial console? Это клиент нужен, что бы ходить в него, порты
ещё прокидывать. Нет. Плохо объяснил, я хочу serial console через ssh,
как в libvirt (который её через /dev/pts отдаёт)


--
sergio.

Reply | Threaded
Open this post in threaded view
|

Re: systemd inittab

Victor Wagner
On Fri, 24 May 2019 11:25:00 +0300
sergio <[hidden email]> wrote:

> On 24/05/2019 09:51, Victor Wagner wrote:
>
> > Ну можно на мой vws посмотреть. Вроде все перечисленное он делает.
> >
> > https://www.wagner.pp.ru/fossil/vws 
>
> SPICE ради serial console? Это клиент нужен, что бы ходить в него,

А как иначе работать с консолью, ну скажем Windows server?
SPICE хорош тем что лучше всех других возможных вариантов интегрирует
окно виртуальной машины в десктоп. Там и мышь не захватывается в окне,
в отличие от sdl-интерфейса qemu, и clipboard общий.

Все равно же работаешь на своей рабочей станции в какой-нибудь
графической среде. Потому что браузер нужен, читалка pdf-ов нужна.

> порты ещё прокидывать. Нет. Плохо объяснил, я хочу serial console
> через ssh, как в libvirt (который её через /dev/pts отдаёт)

Ну, порты прокидывать - это у меня бродит в голове такая мысль -
сделать в vws прозрачную поддержку ssh. Чтобы можно было указать
имя виртуалки в виде "имя хоста:имя виртуалки" и оно бы само разобралось
как что запускать (при условии правильно заполненных authorized_keys).

Вообще я не против включить и поддержку serial console. Только мне она
обычно как-то не очень нужна, поэтому сам скорее всего делать не
возьмусь.  Но патч приму.

--

Reply | Threaded
Open this post in threaded view
|

Re: systemd inittab

sergio-3
On 24/05/2019 15:28, Victor Wagner wrote:


> SPICE хорош

Для графики --- безусловно.


--
sergio.

Reply | Threaded
Open this post in threaded view
|

Re: systemd inittab

sergio-3
In reply to this post by Victor Wagner
On 23/05/2019 10:26, Victor Wagner wrote:

> Может поискать что другое для управления kvm-виртуалками.

Может просто libvirt-daemon-system не должен зависеть от policykit-1?
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=897936

Гентушники говорят, что у них libvirt отлично без systemd работает.

Но дебиановкие мэинтейнеры не спешат:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=897936

Как я понял, надо просто попробовать убрать policykit-1 из зависимостей
libvirt-daemon-system.

--
sergio.