正直なところ、このオンラインでの解決策が見つからないとは信じられません。私は似ているように見えるいくつかの事に出くわしましたが、本当に私が望むことをするものは何もありません...
シェルスクリプトを使用してコマンドを開始しようとしています。いつ/いつ/どのように/終了するかは気にしません。プロセスを開始して実行したいが、すぐにシェルに戻ることができるようにしたい...
それが十分明確であることを願っています、私はおそらく信じられないほど愚かなものを見逃しています
バックグラウンドでスクリプトを実行するだけです。
$ myscript &
これは、&
スクリプト内。これはおそらくあなたが望むことをしないでしょう。
誰もがdisown
を忘れました。要約は次のとおりです。
&
は、ジョブをバックグラウンドに置きます。
disown
は、シェルのジョブ制御からプロセスを削除しますが、端末に接続したままにします。
SIGHUP
を送信しないことです(シェルがSIGHUP
を受信した場合、通常はSIGHUP
もプロセスに送信します。終了するプロセス)。Nohup
はプロセスを端末から切断し、その出力をNohup.out
にリダイレクトし、SIGHUP
から保護します。
SIGHUP
を受信しません。&
(バックグラウンドジョブとして)で使用されます。Nohup cmd
ターミナルを閉じてもハングアップしません。出力はデフォルトでNohup.outに出力されます
これをバックグラウンドと組み合わせて、
Nohup cmd &
そして出力を取り除きます、
Nohup cmd > /dev/null 2>&1 &
コマンドをdisown
することもできます。タイプcmd
、Ctrl-Z
、bg
、disown
または、プログラムを実行した後、Ctrl-Zを押してプログラムを停止し、次を入力します。
bg
最後に停止したプログラムをバックグラウンドに配置します。 ( '&'なしで何かを開始し、それを再起動せずにバックグラウンドで引き続き使用したい場合に便利です)
screen -m -d $command$
は、切り離されたセッションでコマンドを開始します。 screen -r
を使用して、開始されたセッションにアタッチできます。これは素晴らしいツールであり、リモートセッションにも非常に役立ちます。 man screen
で詳細をご覧ください。