Escribir PID para archivar en ejecución Bash

1

Estoy ejecutando un script de bash a través de cron. Quiero escribir el ID de proceso (PID) de la secuencia de comandos a un /tmp/ archivo de referencia, en caso de que necesite eliminarlo más tarde (este script puede tardar de 6 a 10 horas en completarse).

¿Es posible hacer algo como esto?

#!/bin/sh

echo ${PID} > /tmp/backup_pid
...
rest of the script

Cada vez que se ejecuta el script. tar o rsync, se lanzan como procesos independientes, de ahí que me guste esta función PID.

Esta respuesta ( https://superuser.com/a/238533/314696 ) sugiere usar eval, pero me han enseñado que eval es ev yo l Gracias.

Jongosi
fuente

Respuestas:

3

La variable shell $$ contiene el PID del script actual en ejecución. Podrías usarlo así:

echo $$ >/tmp/backup_pid
mtak
fuente
1

Si desea obtener PID:

    pgrep Process                ###Write process name instead of "Process"###

Si desea obtener el PID y el proceso de eliminación desde el terminal de GNOME:

    pid=$(pgrep Process) && kill -9 $pid

Si desea finalizar una tarea con shell scripting:

    pdi=$pgrep Process)
    kill -9 $pid

O escriba PID a un archivo:

    pgrep Process > FileName.Format
Pouya
fuente