6 votos

Si puedo salir de la Terminal.la aplicación, hacer los procesos que se inició salir con ella?

Si puedo utilizar el Terminal para iniciar un proceso que consume tiempo (en este caso, la eliminación de un grande .archivo sparsebundle en mi Cápsula del Tiempo, que podría tomar horas) y si se me salga de la aplicación Terminal en sí, antes de que el proceso se ha completado, hace que el proceso en curso (la eliminación) también dejar de fumar? O no Terminal sólo actúan como el 'trigger' y el proceso se ejecuta de forma autónoma, independientemente de si el Terminal.es la aplicación activa o no?

6voto

David Anderson Puntos 2189

Para el comando para continuar después del cierre de la Terminal de la ventana de la aplicación, usted necesita hacer lo siguiente.

  1. Preceder el comando con nohup. Esto permitirá que el comando para continuar después de que el Terminal de la ventana de la aplicación se cierra. Esto también permite que el comando para continuar después de dejar la aplicación Terminal.
  2. Redirigir la salida estándar y el error estándar para el mismo o diferentes archivos. Esto le da a la salida de un lugar para ir, de lo contrario, el valor predeterminado será de uso. (Consulte la página man de abajo).
  3. Añadir un & hasta el final de la línea de comandos. Este se ejecuta el comando en el fondo, de lo contrario no se obtendrá un símbolo del sistema hasta que finaliza el comando.

Por ejemplo, si yo quería usar la find comando para buscar el archivo readgpt e imprimir los resultados de un Terminal de la ventana de la aplicación, me gustaría ejecutar la orden dada a continuación. Nota: Aquí, no me importa acerca de los mensajes de error, así que me redirige error estándar a /dev/null.

find / -name readgpt -print 2>/dev/null

Ahora, si me quería cerca de la Terminal de la ventana de la aplicación y de la vista de los resultados más tarde, me iba a ejecutar el siguiente comando.

nohup find / -name readgpt -print >~/Documents/results.txt 2>/dev/null &

Después de entrar en el de arriba, se puede conseguir un trabajo número entre paréntesis seguido por un número de proceso. Un ejemplo es la siguiente.

[1] 1456

Usted puede obtener el estado de este proceso mediante la introducción de la ps de comandos, como se muestra a continuación.

Marlin:~ davidanderson$ ps 1456
  PID   TT  STAT      TIME COMMAND
 1456 s001  U      0:06.83 find / -name readgpt -print

Usted puede terminar este proceso mediante la introducción de la kill de comandos, como se muestra a continuación.

Marlin:~ davidanderson$ kill 1456
[1]+  Terminated: 15          nohup find / -name readgpt -print > ~/Documents/results.txt 2> /dev/null

Nota: Si introduce kill comando en una ventana de la que difiere de la utilizada para crear el proceso, entonces no habrá ninguna salida.

La página man de la nohup comando es la siguiente.

NOHUP(1)                  BSD General Commands Manual                 NOHUP(1)

NAME
     nohup -- invoke a utility immune to hangups

SYNOPSIS
     nohup [--] utility [arguments]

DESCRIPTION
     The nohup utility invokes utility with its arguments and at this
     time sets the signal SIGHUP to be ignored.  If the standard output
     is a terminal, the standard output is appended to the file nohup.out
     in the current directory.  If standard error is a terminal, it is
     directed to the same place as the standard output.

     Some shells may provide a builtin nohup command which is similar or
     identical to this utility.  Consult the builtin(1) manual page.

ENVIRONMENT
     The following variables are utilized by nohup:

     HOME  If the output file nohup.out cannot be created in the current
           directory, the nohup utility uses the directory named by HOME
           to create the file.

     PATH  Used to locate the requested utility if the name contains no
           `/' characters.

EXIT STATUS
     The nohup utility exits with one of the following values:

     126     The utility was found, but could not be invoked.

     127     The utility could not be found or an error occurred in
             nohup.

     Otherwise, the exit status of nohup will be that of utility.

SEE ALSO
     builtin(1), csh(1), signal(3)

STANDARDS
     The nohup utility is expected to be IEEE Std 1003.2 (``POSIX.2'')
     compatible.

BUGS
     Two or more instances of nohup can append to the same file, which
     makes for a confusing output.

BSD                              July 19, 2001                             BSD

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X