Write PID para arquivo na execução de bash

1

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.

    
por Jongosi 10.10.2014 / 11:11

2 respostas

3

A variável do shell $$ contém o PID do script atual em execução. Você poderia usá-lo assim:

echo $$ >/tmp/backup_pid
    
por 10.10.2014 / 11:14
1

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
    
por 10.10.2014 / 11:33