Retomar um processo através de um número PID

3

Eu queria que um daemon começasse na inicialização, então adicionei uma linha a /etc/rc.local que terminou em "& amp;" Eu fiz isso para que ele fosse executado em segundo plano.

O daemon está carregado e funcionando bem, mas quando o daemon está rodando, você pode pressionar as teclas que fazem outras coisas importantes.

Quando finalmente estou logado, queria retomar o processo ou enviar um terminal (tty2) para que eu possa fazer algumas coisas.

Sou novo no Linux e não sei como fazer isso.

Eu faço um ps -aux |grep uox para descobrir qual é o PID. Mas não sei como retomar.

    
por new_linux 12.08.2013 / 07:27

3 respostas

4

jobs listará apenas as tarefas associadas ao shell em que o comando jobs é executado e, da mesma forma, fg e bg só funcionam com processos na mesma árvore de processo que o shell atual. No contexto desta questão, o trabalho que você deseja anexar foi iniciado com /etc/rc.local , de modo que o shell não é o atual em que você está.

Você pode iniciar o processo a partir de /etc/rc.local com o comando screen ( link ) - isso será iniciado se anexado a um pseudo-terminal, você poderá usar o screen novamente para anexar a esse terminal e digitar caracteres no programa em execução.

Instale screen usando apt-get e digite man screen para ver todas as opções. Não sei exatamente o que você deve colocar em rc.local e não tem tempo agora para experimentar, mas pode atualizar essa resposta mais tarde.

    
por David Purdue 12.08.2013 / 08:02
1

Emprestado de Vijay
Use o comando jobs para localizar a lista de processos em segundo plano iniciados por você. por exemplo: há um script que simplesmente dorme por 10 segundos em 5 iterações. Eu o executei 4 vezes em segundo plano.

>jobs
[1]  + Running                       ./temp.sh
[2]  - Running                       ./temp.sh
[3]    Running                       ./temp.sh
[4]    Running                       ./temp.sh

fg é o comando para trazê-lo de volta ao primeiro plano, conforme mostrado abaixo.

>fg 1
[CTRL -c]

como visto acima eu terminei o processo e ele não existe mais. Agora, se eu correr novamente jobs

>jobs
[2]  + Running                       ./temp.sh
[3]    Running                       ./temp.sh
[4]  - Running                       ./temp.sh
>

Você também pode verificar aqui para saber mais

    
por Stormvirux 12.08.2013 / 07:43
0

Você pode retomar um processo através de um número PID de qualquer shell usando o comando kill.

kill -CONT <pid> 

Não esqueça a parte -CONT ou você vai matar o seu processo.

P.S. David Purdue está correto que fg e bg só funcionam com processos na mesma árvore de processos. Sua solução parece ser mais adequada às suas necessidades. No entanto, como o título é "Retomar um processo por meio de um número PID", deduzi que outros que precisam disso podem querer encontrá-lo.

    
por Silverdev 12.06.2018 / 02:20

Tags