私がやりたいことは、内部で新しいプロセスを作成し、私の端末が次の行にあり、bash
プロセスが通常私の標準出力を盗むことを除いて、何も起こらなかったかのように振る舞うことです。
今欲しいapt-get update
が、すべてのダウンロードを見るのではなく、いくつかの設定ファイルを編集したいので、vi /some/config
これら2つのことを同時に実行できるはずです。
明確にするために質問する前にいくつかの内容を読んだので、端末が閉じた後もプロセスを維持したいので、[まだ終了していない場合]サブプロセスではないようです。おそらくサブプロセスではないでしょう。シェル、フォークでしょうか?フォークのことですか?このようにフォークするにはどうすればよいですか?
答え1
答え2
'</dev/null'は/dev/nullから標準入力を読み込んでいます。入力を正常にリダイレクトします。すぐにEOFを返します。つまり、空のファイルから読み込んでいます。これはSTDINからデータを読みたい場合がありますが、この場合はそうでない場合に便利な慣用語です。
答え3
setsid
私はあなたが新しいセッションでプログラムを開始するコマンドを探していると思います。したがって、次のことができます。
setsid apt-get update
apt-get update
そして彼らが沈黙したい場合:
setsid apt-get update >/dev/null 2>&1
利点は、setsid
この方法で開始されたプロセスが端末が閉じられた後も続くことです。
答え4
nohup apt-get update > /dev/null 2> /dev/null < /dev/null & vi /some/config
https://en.wikipedia.org/wiki/Nohup#Overcoming_hanging
技術的には、nohupはstdinが/ dev / nullであることを意味するので、< /dev/null
no