В https://manpages.debian.org/stretch/sysvinit-core/init.8.en.html
/sbin/telinit связан с /sbin/init . Требуется односимвольный аргумент и сигналы init для выполнения соответствующего действия.
...
Init прослушивает fifo в /run, /run/initctl, для сообщений. Telinit использует это для связи с init.
Означает ли первое предложение, что telinit
является символической ссылкой на init
? Если да, то правильно ли, что telinit
и init
запускаются в одном и том же процессе (например, с помощью блокировки файла)? Если да, то как telinit
может взаимодействовать с init
с помощью FIFO или сигналов?
Для сравнения, в Systemd systemd
и systemctl
— разные программные файлы. Выполняет ли telinit
ту же роль, что и init
в sysvinit, как systemctl
и systemd
?
Спасибо.
Это символическая ссылка, но программы могут смотреть на то, как они вызываются, и выполнять различные действия. Это чрезвычайно распространено в мире Unix.
Таким образом, когда вы запускаете команду telinit
, она выполняется в собственном пространстве процесса, отдельно от процесса init
. Он посылает сообщение процессу init
. Это может быть отправлено через FIFO или сигналом, в зависимости от параметров времени компиляции.