Kill Infinite loop no nível de execução do Upstart

3

Um dos meus aplicativos está em um loop infinito no nível de execução 1 imprimindo Nenhum protocolo especificado continuamente após executar startx -- :1 . O nível de execução não escuta meus comandos dados no nível de execução. Eu posso, é claro, dar o kernel Magic * B, mas isso iria fechar todos os meus outros níveis de execução que eu não quero. Magia * K não está funcionando.

Uma maneira desagradável de parar o nível de execução é removendo componentes como /etc/rc1.d/*.*bluetooth.* . No entanto, não vejo isso de uma boa maneira a longo prazo.

Como você pode matar todos os processos no nível de execução 1 que pertence ao prompt aberto no nível de execução fornecido?

    
por Léo Léopold Hertz 준영 04.12.2009 / 21:25

1 resposta

3

Uma maneira limpa de fazer isso seria usar update-rc.d . Você pode configurar o programa para não ser executado durante o nível de execução 1:

$update-rc.d script_name stop 1 .

onde script_name é o script init.d. Por exemplo, para impedir que o Apache seja executado no nível de execução 1:

$update-rc.d apache2 stop 1 .

Se você quiser desativar completamente o serviço especificado:

$update-rc.d -f script_name remove

Se você for desativar um serviço, também deverá impedir que ele seja executado em todos os runlevels. Da próxima vez que um serviço for atualizado, os scripts init.d poderão ser recriados, essencialmente reativando seu serviço.

Para desativá-lo em todos os runlevels :

$update-rc.d script_name stop 80 0 1 2 3 4 5 6 .
    
por 21.12.2009 / 00:45