GNU/Linux >> Tutoriales Linux >  >> Linux

¿Ejecutar comando Nohup con entrada?

En UNIX, tengo un proceso que quiero ejecutar usando nohup. Sin embargo, este proceso en algún momento esperará en un mensaje en el que debo ingresar yes o no para que continúe. Hasta ahora, en UNIX he estado haciendo lo siguiente:

nohup myprocess <<EOF
y
EOF

Entonces comienzo el proceso 'myprocess' usando nohup y canalizo un archivo con 'y' y luego cierro el archivo. Las líneas anteriores son efectivamente tres comandos separados, es decir, presiono enter en la primera línea en UNIX, luego aparece un mensaje donde ingreso 'y' y luego presiono enter para finalmente escribir 'EOF' y presionar regresar nuevamente. Entonces esto funciona perfectamente, pero mi problema está a continuación.

Ahora quiero ejecutar esto en Perl, pero no estoy seguro de cómo puedo ejecutar este comando, ya que tiene más de tres líneas. No sé si lo siguiente funcionará:

my $startprocess = `nohup myprocess <<EOF &
y
EOF
`

Respuesta aceptada:

Si solo quieres escribir un solo y a la entrada estándar del proceso, puede hacer esto:

(echo y | nohup myprocess) &

Si quieres seguir escribiendo y para cada mensaje que aparece, coreutil yes existe exactamente para este propósito:seguirá escribiendo lo que le digas a stdout. Su valor predeterminado es generar "y", por lo que solo puede:

(yes | nohup myprocess) &

pero si necesitas algo más puedes pasarlo como argumento


Linux
  1. Comando Nohup con ejemplos

  2. Comando JQ en Linux con ejemplos

  3. ¿Ejecutar un comando una vez por línea de entrada canalizada?

  4. ¿Cómo ejecutar el comando bash con privilegios sudo en Java?

  5. ¿Comando Linux/Unix para unir N líneas de entrada con delimitadores?

Comando Netcat (nc) con ejemplos

15 comandos ps de Linux con ejemplos

Cómo ejecutar un comando de Shell con Python

Comando Nohup Linux con ejemplos

Comando de historial con ejemplos

Comando Nohup en Linux