Vorrei eseguire e configurare un processo in modo simile a un demone da uno script.
La mia shell è emulata da zsh sotto Cygwin e il demone è SFK , un server FTP di base.
Per ciò che conta qui, lo script startserv.sh
può essere redatto come segue:
#!/bin/sh
read -s -p "Enter Password: " pw
user=testuser
share=/fshare
cmd="sfk ftpserv -user=$user -pw=$pw -usedir $share=$share"
$cmd &
Dopo aver eseguito lo script startserv.sh
, si interrompe (termina?) Senza mostrare alcun prompt, quindi:
CTRL+ Ctermina sia lo script che il processo in background;
Colpire Enterlo script termina il processo rimane in background.
In ogni caso posso vederlo solo tramite ps
e non jobs
, quindi, quando voglio chiudere il processo, devo inviare un kill -9
segnale brutale , che è qualcosa che vorrei evitare a favore di CTRL+ C.
Un'alternativa sarebbe eseguire l'intero script in background. 'Sarebbe', ma il read
comando non è in grado di ottenere l'input dell'utente se lo script viene eseguito come startserv.sh &
.
Nota che ho bisogno di un server effimero, non di un vero demone : ovvero, voglio che il processo del server venga eseguito in background, al termine dello script, per eseguire semplici attività di shell interattive (con un guest di macchina virtuale), ma non t ha bisogno del processo per sopravvivere al guscio; quindi nohup
non sembra appropriato.
bgproc="$!"
e quindicommand "$bgproc"
eseguire l'azione appropriata. Vedi anche stackoverflow.com/questions/1908610/…