Shell Scripting – Comando de desautorización

Shell es un intérprete de lenguaje de comandos. Se utiliza en la mayoría de las distribuciones basadas en UNIX/LINUX. El scripting de soporte de Shell significa que podemos automatizar los comandos de Shell escribiendo algunos scripts con diferente lógica, bucles y toma de decisiones. Esto nos beneficia para automatizar algunos trabajos tediosos y que consumen mucho tiempo. Aquí, en este artículo, vamos a discutir el comando disown dentro de Shell Scripting . El comando Disown ayuda a eliminar trabajos o mantenerlos en ejecución después de cerrar la sesión de ssh y terminal en segundo plano.

Sintaxis del comando Desautorizar :

disown [options] job1 job2 ... jobn

Entendamos usando ejemplos:

Ejemplo 1: comando de rechazo para eliminar todos los trabajos

Guión de ejemplo:

# starts some jobs
cat /dev/random > /dev/null &
ping google.com > /dev/null &
jobs -l
echo "some jobs are started"

# disown command called to remove all the jobs
disown -a 
echo "all the jobs are removed"
jobs -l #displays all the jobs

Salida del guión:

[1]- 6174 Ejecutando gato /dev/aleatorio > /dev/null &

[2]+ 6175 Ejecutando ping google.com > /dev/null &

se inician algunos trabajos

todos los trabajos son eliminados

A continuación se muestra la representación pictórica de la terminal después de ejecutar el siguiente script:

 

Aquí, en este ejemplo, el siguiente script primero inicia algunos trabajos en segundo plano. Luego, usando trabajos -l , muestra todos los trabajos en la terminal. A continuación, se llama al comando disown -a que elimina todos los trabajos del shell actual. Al final del script, el script llama al comando  jobs -l pero no imprime nada en la terminal, lo que significa que ahora no hay trabajos presentes en el shell actual.

Ejemplo 2: Comando Disown para eliminar solo trabajos en ejecución

Ejemplo con salida:

satyajit@satyajit-ThinkPad:~$trabajos -l

[1]- 8735 Ejecutando gato /dev/aleatorio > /dev/null &

[2]+ 8736 Detenido (señal) ping google.com > /dev/null

satyajit@satyajit-ThinkPad:~$repudiar -r

satyajit@satyajit-ThinkPad:~$trabajos -l

[2] 8736 Detenido (señal) ping google.com > /dev/null

A continuación se muestra la representación pictórica de la carcasa del terminal después de ejecutar lo siguiente:

 

En el ejemplo anterior, inicialmente tenemos 2 trabajos: uno se está ejecutando y otro está detenido. Luego, hemos usado el comando disown -r y solo elimina la tarea en ejecución. Entonces, después de ejecutar el comando disown cuando verificamos los trabajos disponibles, encontramos el detenido hasta presente allí.

Ejemplo 3: Disown comando para mantener los trabajos en ejecución después de cerrar sesión

Si cerramos el shell de la terminal, todos los trabajos en ejecución finalizan automáticamente, pero con la ayuda del comando disown, podemos evitarlo.

Guión de ejemplo:

# starts some jobs
ping google.com > /dev/null &
jobs -l #displays all the jobs
disown -h %1 #disown command called 
exit

Salida del guión:

satyajit@satyajit-ThinkPad:~$./gfg.sh

[1]+ 9935 Ejecutando ping google.com > /dev/null &

A continuación se muestra la representación pictórica de la carcasa del terminal después de ejecutar lo siguiente:

 

En el ejemplo anterior, hemos utilizado el comando disown con la opción -h que hace que el trabajo sea independiente del shell actual para que pueda estar en estado de ejecución incluso después de salir o cerrar la sesión del shell.

Publicación traducida automáticamente

Artículo escrito por satyajit1910 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *