スクリプトからデーモンに似たプロセスを実行および構成したいと思います。
私のシェルはCygwinでエミュレートされたzshであり、デーモンは基本的なFTPサーバーであるSFKです。
ここで重要なのは、スクリプト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。
別の方法 は、スクリプト全体をバックグラウンドで実行することです。「Would be」ですがread
、スクリプトがとして実行される場合、コマンドはユーザー入力を取得できませんstartserv.sh &
。
真のデーモンではなく、一時サーバーが必要なことに注意してください。つまり、スクリプトが終了した後、サーバープロセスをバックグラウンドで実行して、(仮想マシンゲストで)簡単なインタラクティブシェルタスクを実行する必要がありますが、シェルを生き残るためのプロセスが必要です。したがって、nohup
適切ではないようです。
bgproc="$!"
後、およびcommand "$bgproc"
適切な行動を取ることを。stackoverflow.com/questions/1908610/