linux como saber o processo de um script?

1

Eu executei um script postData.sh, mas quando faço "ps -ef", não vejo o script na lista de programas em execução, mas vejo processos extra -bash em execução. Como faço para determinar o pid para que eu possa matar o script como está em segundo plano agora?

obrigado Dean

    
por Dean Hiller 26.06.2013 / 16:14

5 respostas

3

Para obter o PID de um processo, use:

pidof postData.sh

Caminho alternativo:

pgrep postData.sh
    
por 26.06.2013 / 16:28
2

Isso pode ajudá-lo a encontrá-lo, pois ele imprimirá o ID do processo, o ID do processo pai e o comando estendido

ps -eo pid,ppid,start_time,command

e isso tornará uma árvore útil dos processos.

pstree -pu

Se você encontrar algo que deseje pausar, para avaliar se é o processo certo, você pode kill -STOP <pid> e continuar com kill -CONT <pid>

    
por 26.06.2013 / 16:29
2

OK, eu resolvi isso. os scripts que eu copiei estavam faltando o #!/bin/bash e, por algum motivo, quando eu rodava o script no ps -ef, ele aparecia apenas como -bash. Agora que adicionei o #!/bin/bash , ele aparece corretamente como

[root@sdi-prod-01 manytables]# ps -ef | grep postTemp
root     29165 28764  1 10:51 pts/12   00:00:00 /bin/bash ./postTemp.sh 1

grrrrrr, isso foi chato e todos os meus scripts já estão rodando, mas não posso distingui-los por causa disso ... viver e aprender, eu acho.

    
por 26.06.2013 / 18:53
0

Se for o último processo com base no qual você pode simplesmente kill $! .

    
por 26.06.2013 / 17:00
-2

Usar ps -x gera o comando inteiro.

    
por 26.06.2013 / 16:17