A variável do shell $$
contém o PID do script atual em execução. Você poderia usá-lo assim:
echo $$ >/tmp/backup_pid
Estou executando um script bash via cron. Eu quero escrever o ID do processo (PID) do script para um arquivo /tmp/
para referência, caso eu precise matá-lo mais tarde (esse script pode levar de 6 a 10 horas para ser concluído).
É possível fazer algo assim:
#!/bin/sh
echo ${PID} > /tmp/backup_pid
...
rest of the script
Cada vez que o script executa tar
ou rsync
, eles são iniciados como processos independentes e, portanto, eu gostaria desse recurso de PID.
Esta resposta ( link ) sugere o uso de eval
, mas aprendi que eval
é ev i l. Obrigado.
Se você deseja obter o PID:
pgrep Process ###Write process name instead of "Process"###
Se você deseja obter o PID e matar o processo do Terminal do GNOME:
pid=$(pgrep Process) && kill -9 $pid
Se você quiser terminar uma tarefa com scripts de shell:
pdi=$pgrep Process)
kill -9 $pid
Ou escreva o PID em um arquivo:
pgrep Process > FileName.Format
Tags bash cron bash-scripting