O comando Telinit não funciona

0

Eu não estava ciente do comando telinit e tentei usá-lo sem nenhum resultado satisfatório.

Abaixo do meu comando

telinit 1

Eu obtenho o seguinte erro:

timeout opening/witing control channel /dev/initctl

A faixa obtida não me ajuda

...
rt_sigaction(SIGALRM, {0x11de0, [], 0x4000000 /* SA_??? */}, NULL, 8) = 0
setitimer(ITIMER_REAL, {it_interval={0, 0}, it_value={3, 0}}, {it_interval={0, 0}, it_value={0, 0}}) = 0
open("/dev/initctl", O_WRONLY)          = ? ERESTARTSYS (To be restarted if SA_RESTART is set)
--- SIGALRM {si_signo=SIGALRM, si_code=SI_KERNEL} ---
sigreturn() (mask [QUIT])               = -1 EINTR (Interrupted system call)
write(2, "telinit: ", 9telinit: )                = 9
write(2, "timeout opening/writing control "..., 53timeout opening/writing control channel /dev/initctl
) = 53
exit_group(1)                           = ?
+++ exited with 1 +++

O que isso significa?

    
por andrew 17.08.2018 / 14:01

1 resposta

0

Esqueça os runlevels.

Sim, é a mesma resposta que para systemd.

O programa init do BusyBox não tem um conceito de runlevels em primeiro lugar. Isso está em o BusyBox doco . Há não é run level 1 para comandar a mudança para. Usar telinit com BusyBox% realinit é simplesmente errado.

Ao usar telinit com algum gerenciador de sistema do outro conjunto de ferramentas em execução como processo # 1, ele ainda está extremamente errado. Nos sistemas operacionais systemd, os runlevels são "obsoletos"; eles não existem em sistemas gerenciados por muitos outros conjuntos de ferramentas (do nosh system-manager através do runit-init do Gerrit Pape até o initNG ); e é apenas na verdade van Smoorenburg init , finit e Upstart, de Joachim Nilsson, que têm o mecanismo. p>

Observe que o programa telinit precisa corresponder ao conjunto de ferramentas que está sendo usado no momento para o programa gerenciador de sistemas. Existem muitos programas telinit de diferentes conjuntos de ferramentas. Alguns esperam um FIFO em /dev/initctl . Alguns esperam um FIFO em /run/initctl . Alguns falam diferentes protocolos sobre seus FIFOs, e o protocolo van Smoorenburg init é considerado privado de qualquer forma por seus desenvolvedores. Muitos nem sequer usam um FIFO e são shims em torno dos mecanismos nativos do conjunto de ferramentas, como o nosh telinit , que é um shim em torno de system-control , o Upstart telinit que emite os eventos do Upstart e o systemd telinit que é seu programa systemctl por outro nome. E mesmo para aqueles que usam um FIFO, há a necessidade de haver um servidor, o qual também tem que corresponder ao gerenciador do sistema em execução, executando e ouvindo naqueles FIFOs.

Tudo isso para permitir que as pessoas preservem os hábitos aprendidos de executar um comando telinit .

Esqueça os runlevels, e se você ainda não adquiriu o hábito de usar telinit (ou, pior ainda, init como um comando), é melhor não aprender em primeiro lugar.

Leitura adicional

por 19.08.2018 / 16:02

Tags