
次のような状況が発生するような方法でターミナルからプログラムを起動しようとしています。
- ターミナルを閉じてもプログラムは終了しません
- プログラムは、開いたり、使用したり、閉じたりするときにターミナルに何も出力しません。
- ターミナルは他の用途にも自由に使用できます
- コマンドは短くてわかりやすい
- 心配する出力ファイルはありません
答え1
見るman nohup
:
NAME
nohup - run a command immune to hangups, with output to a non-tty
答え:
nohup program-name &
答え2
これが最も完全な方法だと思います:
program-name </dev/null &>/dev/null &
disown %%
バックグラウンド プロセスを放棄すると、シェルはそれを追跡しなくなります。プロセスが完了したことを通知しません。シェルを閉じるのを妨げることはありません。は%%
「最近バックグラウンドで実行されたジョブ」を意味します。
すべての詳細を隠したい場合は、.bashrcに次のような関数を入れてください。
launch_and_forget () { "$@" </dev/null &>/dev/null & disown %%; }
それから
launch_and_forget program args "args args" ...
あなたにとって意味のある名前を付けてください。
答え3
非常に簡単にsetsid
:-
NAME
setsid - run a program in a new session
SYNOPSIS
setsid program [arg...]
DESCRIPTION
setsid runs a program in a new session.
次のコマンドを試してください:-
setsid <command>
例: setsid gedit
-setsid nautilus ~/Downloads/
など