![子プロセスにならずに端末でプロセスを開く方法は? [繰り返し]](https://linux33.com/image/4295/%E5%AD%90%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9%E3%81%AB%E3%81%AA%E3%82%89%E3%81%9A%E3%81%AB%E7%AB%AF%E6%9C%AB%E3%81%A7%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9%E3%82%92%E9%96%8B%E3%81%8F%E6%96%B9%E6%B3%95%E3%81%AF%EF%BC%9F%20%5B%E7%B9%B0%E3%82%8A%E8%BF%94%E3%81%97%5D.png)
次のコマンドを実行するとLXTerminal
:
gnome-terminal &
gnome-terminal
開く。ただし、一度閉じると子プロセスであるため閉じられますLXTerminal
。gnome-terminal
2番目のプロセスを独立して開始する方法はありますか?
答え1
子プロセスなしでプロセスを開始することは不可能です。外部コマンドを実行すると、シェルの後ろにバックグラウンド呼び出しが発生し、親シェルがシャットダウンしたときにシャットダウンするのを防ぎますfork()
。execvp()
1つの方法は、次のものを使用することですnohup
。
nohup gnome-terminal &
使用している場合、別のオプションは次の手順bash
です。disown
gnome-terminal & disown
答え2
はい、次のように開きます。
$ sudo gnome-terminal &
これにより、両方の端末を使用して作業できます。ただし、親端末を閉じると下位端末が閉じるので、閉じないでください。
nohupを使用できます。
$ nohup gnome-terminal &
$ exit