Écrire un PID dans un fichier lors de l'exécution Bash

1

J'exécute un script bash via cron. Je veux écrire l'ID de processus (PID) du script dans un /tmp/fichier à titre de référence, au cas où je devrais le tuer plus tard (ce script peut prendre entre 6 et 10 heures).

Est-il possible de faire quelque chose comme ça:

#!/bin/sh

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

Chaque fois que le script s'exécute tarou rsyncest lancé en tant que processus indépendant, je voudrais donc cette fonctionnalité PID.

Cette réponse ( https://superuser.com/a/238533/314696 ) suggère d' utiliser eval, mais je nous a appris que evalest ev i l. Merci.

Jongosi
la source

Réponses:

3

La variable shell $$contient le PID du script en cours d'exécution. Vous pourriez l'utiliser comme ceci:

echo $$ >/tmp/backup_pid
mtak
la source
1

Si vous voulez obtenir un PID:

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

Si vous voulez obtenir le PID et tuer le processus depuis le terminal GNOME:

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

Si vous souhaitez terminer une tâche avec un script shell:

    pdi=$pgrep Process)
    kill -9 $pid

Ou écrivez un PID dans un fichier:

    pgrep Process > FileName.Format
Pouya
la source