Chci mít skript Shell, jako je tento:
my-app &
echo $my-app-pid
Ale nevím, jak získat pid právě vykonaného příkazu.
Vím, že mohu použít jobs -p my-app
příkaz grep pid. Ale pokud chci spustit Shell vícekrát, tato metoda nebude fungovat. Protože jobspec je dvojznačný.
PID posledního provedeného příkazu je v $!
Proměnná prostředí:
my-app &
echo $!
Získejte PID
:
#!/bin/bash
my-app &
echo $!
Uložit PID
do proměnné:
#!/bin/bash
my-app &
export APP_PID=$!
Uložte všechny instance PID
do textového souboru:
#!/bin/bash
my-app &
echo $! >>/tmp/my-app.pid
Uložte výstup, chyby a PID
do oddělených souborů:
#!/bin/bash
my-app >/tmp/my-app.log 2>/tmp/my-app.error.log &
echo $! >>/tmp/my-app.pid
echo "my-app PID's: $(cat /tmp/my-app.pid)"
Zkuste něco jako
pidof my_app >> /tmp/my_app.pid
K tomu můžete také použít pkill Pomocí pkill můžete jednoduše zadat název procesu a vyhnout se získání pid