Bem, em todo o comando pgrep
seria útil, pois você sabe o nome do comando em questão.
pgrep -l <name_of_command>
listaria o nome e o PID
, para que você possa usar isso no seu script.
Veja: man pgrep
Eu preciso ser capaz de executar ou não executar um script com base no fato de outro processo estar ou não em execução. O processo é um software de processamento de imagem de terceiros chamado DenseCap. Existe uma maneira de wait
em uma tarefa que você não conhece o PID, mas apenas o nome de? Quando executo ps -ef
, esse é o processo:
usr 4638 4536 93 14:57 pts/8 00:00:05 /home/usr/torch/install/bin/lu
Eu NÃO preciso executar um determinado script quando esse estiver em execução, mas que determinado script precise estar em execução quando o DenseCap não estiver. Eu não sei como recuperar o PID para isso. Basicamente, existe um script que tenho que executa o DenseCap, e outro script que eu tenho que executa um certo processo que realmente não deveria estar rodando enquanto o DenseCap está rodando. Existe um script que executa os dois simultaneamente. Eu estou perdido quanto ao que fazer. Se você precisar ver o código, posso postá-lo.
Bem, em todo o comando pgrep
seria útil, pois você sabe o nome do comando em questão.
pgrep -l <name_of_command>
listaria o nome e o PID
, para que você possa usar isso no seu script.
Veja: man pgrep
Outro que você pode usar é o seguinte comando usando ps
com a opção de mostrar pid
e cmd
. O pid
nessa ordem seria a primeira parte da linha.
ps -eo pid,cmd | grep <name> | grep -v grep
A única razão pela qual eu gosto de usar este é caso eu precise encontrar um comando pelo switch que o comando está rodando como um túnel que usa algo como CfND
, mas eu posso ter sessões ssh extras rodando.
Exemplo:
terrance@terrance-ubuntu:~$ ps -eo pid,cmd | grep CfND | grep -v grep
14908 ssh -CfND 4242 [email protected]
Espero que isso ajude!