Ich möchte einen Prozess wie einen Daemon aus einem Skript ausführen und konfigurieren.
Meine Shell ist unter Cygwin zsh emuliert und der Daemon ist SFK , ein einfacher FTP-Server.
Für das, was hier zählt, kann das Skript startserv.shwie folgt verfasst werden:
#!/bin/sh
read -s -p "Enter Password: " pw
user=testuser
share=/fshare
cmd="sfk ftpserv -user=$user -pw=$pw -usedir $share=$share"
$cmd &
Nachdem das Skript ausgeführt wurde startserv.sh, wird es angehalten (beendet?), Ohne dass eine Eingabeaufforderung angezeigt wird.
CTRL+ Cbeendet sowohl das Skript als auch den Hintergrundjobprozess;
Wenn Sie Enterdas Skript beenden, bleibt der Vorgang im Hintergrund.
Wie auch immer, ich kann es nur über psund nicht über sehen. jobsWenn ich den Vorgang abschließen möchte, muss ich ein brutales kill -9Signal senden , was ich zu Gunsten von CTRL+ vermeiden möchte C.
Eine Alternative wäre, das gesamte Skript im Hintergrund auszuführen. 'Wäre', aber der readBefehl kann die Benutzereingabe nicht abrufen, wenn das Skript ausgeführt wird als startserv.sh &.
Beachten Sie, dass ich einen kurzlebigen Server benötige, keinen echten Daemon . Das heißt, dass der Serverprozess nach dem Ende des Skripts im Hintergrund ausgeführt werden soll, um einfache interaktive Shell-Aufgaben (mit einem Gast einer virtuellen Maschine) auszuführen. Ich brauche den Prozess, um die Hülle zu überleben. nohupscheint daher nicht angebracht.
bgproc="$!"undcommand "$bgproc"ergreifen Sie dann die entsprechende Aktion. Siehe auch stackoverflow.com/questions/1908610/…