Chciałbym uruchomić i skonfigurować proces podobnie do demona ze skryptu.
Moja powłoka jest emulowana zsh pod Cygwin, a demonem jest SFK , podstawowy serwer FTP.
Dla tego, co jest ważne, skrypt startserv.sh
można napisać w następujący sposób:
#!/bin/sh
read -s -p "Enter Password: " pw
user=testuser
share=/fshare
cmd="sfk ftpserv -user=$user -pw=$pw -usedir $share=$share"
$cmd &
Po uruchomieniu skryptu startserv.sh
zatrzymuje się (kończy?) Bez wyświetlania monitu, a następnie:
CTRL+ Ckończy zarówno proces skryptu, jak i proces zadania w tle;
Naciśnięcie Enterskryptu kończy proces pozostaje w tle.
W każdym razie widzę to tylko przez, ps
a nie jobs
, więc kiedy chcę zakończyć proces, muszę wysłać brutalny kill -9
sygnał, czego chciałbym uniknąć na korzyść CTRL+ C.
Alternatywą byłoby uruchomienie całego skryptu w tle. „Byłoby”, ale read
polecenie nie może uzyskać danych wejściowych użytkownika, jeśli skrypt jest uruchamiany jako startserv.sh &
.
Zauważ, że potrzebuję efemerycznego serwera, a nie prawdziwego demona : chcę, aby proces serwera działał w tle, po zakończeniu skryptu, aby wykonywać proste zadania powłoki interaktywnej (z gościem maszyny wirtualnej), ale nie „ potrzebuje procesu, aby przetrwać pocisk; dlatego nohup
wydaje się niewłaściwe.
bgproc="$!"
a następniecommand "$bgproc"
wykonaj odpowiednie działanie. Zobacz także stackoverflow.com/questions/1908610/…