Je voudrais exécuter et configurer un processus de manière similaire à un démon à partir d'un script.
Mon shell est émulé en zsh sous Cygwin et le démon est SFK , un serveur FTP de base.
Pour ce qui compte ici, le script startserv.sh
peut être rédigé comme suit:
#!/bin/sh
read -s -p "Enter Password: " pw
user=testuser
share=/fshare
cmd="sfk ftpserv -user=$user -pw=$pw -usedir $share=$share"
$cmd &
Après avoir exécuté le script startserv.sh
, il s'arrête (se termine?) Sans afficher aucune invite, puis:
CTRL+ Ctermine à la fois le script et le processus de tâche en arrière-plan;
Frapper Enterle script met fin au processus reste en arrière-plan.
Quoi qu'il en soit, je ne peux le voir que via ps
et non jobs
, donc, quand je veux terminer le processus, je dois envoyer un kill -9
signal brutal , ce que j'aimerais éviter en faveur de CTRL+ C.
Une alternative serait d' exécuter l'intégralité du script en arrière-plan. 'Serait', mais la read
commande ne peut pas obtenir l'entrée utilisateur si le script est exécuté en tant que startserv.sh &
.
Notez que j'ai besoin d'un serveur éphémère, pas d'un vrai démon : c'est-à-dire que je veux que le processus serveur s'exécute en arrière-plan, une fois le script terminé, pour effectuer de simples tâches de shell interactif (avec un invité de machine virtuelle), mais je ne ' t besoin du processus pour survivre à la coquille; ne nohup
semble donc pas approprié.
bgproc="$!"
, puiscommand "$bgproc"
prendre l'action appropriée. Voir aussi stackoverflow.com/questions/1908610/…