Systemd Watchdog и уведомление через Docker

login завершается, когда его дочерний элемент (, зарегистрированный -в пользовательской оболочке входа в систему ), завершается. Он мог бы даже execдочерний элемент не разветвлять, заменяя себя, но ему нужно позаботиться об очистке сеанса PAM -, поэтому вместо этого он должен ждать своего дочернего элемента. После завершения gettyилиinit(в более общем случае процесс инициализации )выполняет дополнительную очистку -до(utmpи т. д. )и ждет нового входа в систему (, если gettyзаменено сам с loginили завершается, когда loginзавершается, процесс инициализации запустит новыйgetty).

Вы правы, по крайней мере, под Linux loginобычно используется только на виртуальных консолях (или реальных терминалах, подключенных через последовательные устройства ). Менеджеры графического отображения реализуют свои собственные механизмы входа в систему. Вы можете запустить loginвнутри оболочки входа в систему, например. в эмуляторе терминала, с небольшой осторожностью(exec login); давным-давно для смены пользователей использовался рекурсивный login, аналог suв наши дни.

Обратите внимание, что некоторые оболочки имеют команду logout, которую предполагается использовать вместо exitдля выхода из оболочки входа в систему; в таких оболочках exitобычно не выходит из оболочки входа в систему.

1
05.05.2020, 21:25
1 ответ

Я исправил это с помощью sdnotify -прокси . Я изменил свою стартовую команду для этого:

/usr/local/bin/sdnotify-proxy /run/my-sd.sock \
    /usr/bin/docker run -t --name my-container --volume /run/my-sd.sock:/run/my-sd.sock \
    --env NOTIFY_SOCKET=/run/my-sd.sock --privileged my
0
28.04.2021, 23:16

Теги

Похожие вопросы