今後数週間、私はターミナルエミュレータをデフォルトのファイルマネージャとして使用することに挑戦します。
問題があります。コマンドラインからGUIプログラムのファイル(Inkscape .svgなど)を開くにはどうすればよいですか?以下が利用可能であることを知っています。
inkscape ./Design.svg &
バックグラウンドに移動しますが、gnome-terminal
そのプロセスの子として残ります(そして一緒に死ぬ)。また、デバッグ警告などがその端末に出力されます(面倒で面倒です)。
Nautilusのようなファイルマネージャが起動したエディタプロセスをリンクしなくなった方法で分離するにはどうすればよいですか?
私の端末でこれを行うにはどうすればよいですか?
答え1
これを達成するためのさまざまな方法が、各方法の長所と短所とともに記事で議論されています.」bash
バックグラウンドでコマンドを正しく実行する「主にその記事と私が読んだ内容に基づいています。POSIX仕様nohup
、必要なものを達成するための最も移植可能な方法は次のとおりです。
nohup inkscape ./Design.svg >/dev/null 2>&1 &
これは実際にプロセスを拒否しません。端末は依然として親プロセスです。しかし、
- 端末が死んでもinkscapeプロセスは死なない
- 端末に出力は表示されません。
nohup.out
ファイルを削除したかのように、ホームディレクトリにファイルは作成されません/dev/null
(。nohup
文書この文書を説明するために。 )
bash
POSIX移植性を使用していてシンプルさに興味がある場合は、@thrigがコメントで指摘したように、最も簡単な方法は次のとおりです。
inkscape ./Design.svg & disown
disown
このユースケースには必要ありませんが、使用できるオプションはいくつかあります。help disown
利用可能な他のオプションを表示するには、入力してください。