Tengo un script en Bash llamado Script.sh
, y necesita saber su propio PID (es decir, necesito obtener el PID dentro del Script.sh)
Alguna idea de cómo se hace esto ?
La variable '$$' contiene el PID.
usar $BASHPID
o$$
Consulte el manual para obtener más información, incluidas las diferencias entre los dos.
TL; DRTFM
$$
Se expande a la ID de proceso del shell.
()
subshell, se expande al ID de proceso del shell de invocación, no al subshell.$BASHPID
Se expande al ID de proceso del proceso Bash actual.
()
subshell, se expande al ID de proceso de la subshell
$BASHPID
es nuevo en BASH 4. Si está usando BASH 3.x, debe usar$$
Además del ejemplo dado en la Guía avanzada de secuencias de comandos Bash a la que hace referencia Jefromi , estos ejemplos muestran cómo las tuberías crean subcapas:
fuente
stdin
). La cadena se conoce como una "cadena aquí".El PID se almacena en
$$
.Ejemplo:
kill -9 $$
matará la instancia de shell desde la que se llama.fuente
kill -9
(con-9
bandera) se considera dañino y solo se debe usar si es absolutamente necesario).kill -9 $$
hace exactamente 1 cosa. Mata el proceso actual de shell . Esto es útil si ha hecho algo en la sesión de shell que no desea escribir en.bash_history
Me gusta:docker run -e PASSWORD=hunter2 ircbot
Puedes usar la
$$
variable.fuente
Si el proceso es un proceso secundario y $ BASHPID no está configurado, es posible consultar el ppid de un proceso secundario creado del proceso en ejecución. Puede ser un poco feo, pero funciona. Ejemplo:
fuente