Я хотел бы запустить и настроить процесс аналогично демону из скрипта.
Моя оболочка эмулируется Zsh под Cygwin, а демон - SFK , базовый FTP-сервер.
Что важно здесь, сценарий startserv.sh
может быть составлен следующим образом:
#!/bin/sh
read -s -p "Enter Password: " pw
user=testuser
share=/fshare
cmd="sfk ftpserv -user=$user -pw=$pw -usedir $share=$share"
$cmd &
После запуска сценария startserv.sh
он останавливается (заканчивается?), Не показывая никаких подсказок, затем:
CTRL+ Cзавершает как скрипт, так и процесс фоновой работы;
Удар Enterпо сценарию завершает процесс, остается в фоновом режиме.
В любом случае, я вижу это только через, ps
а не через jobs
, поэтому, когда я хочу закрыть процесс, я должен послать жестокий kill -9
сигнал, чего я хотел бы избежать в пользу CTRL+ C.
Альтернативой будет запуск всего скрипта в фоновом режиме. «Будет», но read
команда не может получить пользовательский ввод, если скрипт запускается как startserv.sh &
.
Обратите внимание, что мне нужен эфемерный сервер, а не настоящий демон : то есть я хочу, чтобы серверный процесс выполнялся в фоновом режиме, после завершения сценария, для выполнения простых задач интерактивной оболочки (с гостем виртуальной машины), но я не t нужен процесс, чтобы выжить в раковине; поэтому nohup
кажется не уместным.
bgproc="$!"
а затемcommand "$bgproc"
выполнить соответствующее действие. См. Также stackoverflow.com/questions/1908610/…