Me gustaría ejecutar y configurar un proceso similar a un demonio de un script.
Mi shell está emulado zsh bajo Cygwin y el demonio es SFK , un servidor FTP básico.
Para lo que importa aquí, el script startserv.sh
se puede redactar de la siguiente manera:
#!/bin/sh
read -s -p "Enter Password: " pw
user=testuser
share=/fshare
cmd="sfk ftpserv -user=$user -pw=$pw -usedir $share=$share"
$cmd &
Después de ejecutar el script startserv.sh
, se detiene (¿finaliza?) Sin mostrar ningún mensaje, luego:
CTRL+ Cfinaliza tanto el script como el proceso de trabajo en segundo plano;
Al presionar Enterel script, el proceso permanece en segundo plano.
De todos modos, puedo verlo solo a través ps
y no jobs
, así que, cuando quiero cerrar el proceso, tengo que enviar una kill -9
señal brutal , que es algo que me gustaría evitar a favor de CTRL+ C.
Una alternativa sería ejecutar todo el script en segundo plano. 'Sería', pero el read
comando no puede obtener la entrada del usuario si el script se ejecuta como startserv.sh &
.
Tenga en cuenta que necesito un servidor efímero, no un verdadero demonio : es decir, quiero que el proceso del servidor se ejecute en segundo plano, después de que finalice el script, para realizar tareas de shell interactivas simples (con un invitado de máquina virtual), pero no lo hago ' No necesita el proceso para sobrevivir al caparazón; Por lo tanto, nohup
no parece apropiado.
bgproc="$!"
y luegocommand "$bgproc"
para tomar la acción adecuada. Ver también stackoverflow.com/questions/1908610/…