重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

タイトルが大きいですが、簡単な質問です。
プログラムを作成してコンパイルして走らせているのですが、./a.out > out & とすると、標準出力をoutで受けるようにして、プロンプトが戻ってくる(バックグラウンドで走る)ということになります。そこでログアウトして走らせたつもりだったのですが、再度ログインしてみるとそのプロセスが消えているように見えます。ps -all の中に見当たりません。ログアウトするとプロセスは消えるのでしょうか。私がプロセスが動いているのを見落としているのでしょうか、それともログアウトするとプロセスは消えるのでしょうか。消えなかったと記憶しているのですが。
なお、screen コマンドで処理することはできてその場合は所望の結果(ログアウトしてもプロセス継続)を実現することはできます(完全ではないのですが)。

A 回答 (4件)

ちょっと調べたが, 実際には


ひじょ~にめんどくさい
可能性がありますな.

bash の場合ログインシェルをどのように終わらせるかによっても変わるようで, (古いけど) 調査結果が
https://www.glamenv-septzen.net/view/854
にあります.

うん, bash のマニュアルよりもこの表の方がまし... だけど, nohup を付けても死ぬことがあるのか....
    • good
    • 0
この回答へのお礼

回答ありがとうございました。またお手数をおかけしています。
とりあえず、バックグラウンドでの実行はログアウトとともに消えると覚えておくことにします。ただし、設定で生きる可能性もある(私は以前そうだったと記憶していたような)が、試してみたらわかる。結果オーライの場合もあるということですかね。

お礼日時:2019/12/11 12:42

この辺の処理はシェルの管轄であり, Linux カーネルそのものは一切関与しません. したがって, 挙動は使っているシェルによっと

異なる可能性がありますし, さらにいえば同じシェルであっても場合によって動作が違うかもしれません. 詳細はシェルのマニュアルを読んでください.
    • good
    • 0
この回答へのお礼

回答ありがとうございます。管理している主体がどの辺にあるのかが分かりました。ubuntuのbashということになりますが、それでも仕様がいろいろ分かれるでしょうか(その情報は元質問にも出していなかったようです)。
ubuntuとCentOSしか使わないようにはしています。シェルはbashしか使いませんが。

お礼日時:2019/12/11 01:57

https://www.atmarkit.co.jp/ait/articles/1708/24/ …

nohupしていないのなら、端末閉じたときにプロセスも殺されます。
# screen等の仮想端末の場合は除くんでしょうが…。
    • good
    • 1
この回答へのお礼

回答ありがとうございます。そうでしたか。そうじゃないようにする方法として、screenとVNCがあるようですが。

お礼日時:2019/12/10 23:37

>>ログアウトするとプロセスは消えるのでしょうか。



はい、消えます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!