タグアーカイブ: disown

[覚書]bashでbg起動したプロセスを切り離す。ターミナルエミュレータからターミナルエミュレータをバックグランドで起動してjobsしたときに一覧にターミナルエミュレータを表示させたくないとか、誤ってプロセスを殺してターミナルエミュレータを落としたくないとか[disown内部コマンド登場の巻]

bgコマンドは使っていたけど、waitコマンドを知らなかったorz タコユーザーのdeginzabi163です。

まずはターミナルエミュレータから今のフォルダでもう一つターミナルエミュレータを起動する。バックグランド実行で。

こんな感じ。(サンプルはmlterm)

mlterm&[Enter]

しかし、バックグランドプロセスとしていつまでも残ってしまう。

まあ当たり前だが。というか用途からしてそれが正しい。(切り離すなんてのは例外も甚だしい)

とは、いえ、呼び出し元のターミナルを殺すと、道連れで死んでしまう恐れ。やはりなんとかしたい。

大体jobsで邪魔

jobs[Enter]
[1]- 実行中 mlterm&

そんなバッググランドプロセスの切り離しにはこれ「disown」

disown _プロセスID_

disownの実行例

jobs[Enter]
[1]- 実行中 mlterm&

とか出ているので

disown %1[Enter]

すると

jobs[Enter]
$ <– 何にもでていない様子

結論

ベリーナイス!期待通り。google先生より、基本に帰ってman bash。