ターミナルからアプリケーションを起動した後、どのようにしてアプリケーションを自動的に否認しますか?
例:ターミナルを起動してfirefox
を実行すると、アプリケーションが起動しますが、ターミナルを閉じると、Firefoxも閉じます。端末から開始されたアプリケーションを意図せずに閉じることを避けるために、最初にアンパサンドを使用してそれらをバックグラウンドに置くことができます:firefox &
これにより、その端末のプロンプトを使用する機能も復元されます。次に、アプリケーションのプロセスID(PID)を使用して、同じ端末からアプリケーションの所有権を剥奪できます。以下の例を参照してください。
$ firefox &
$ ps | grep firefox
14917 pts/6 00:00:00 firefox
$ disown 14917
これで、アプリケーションは使用している端末から独立して実行され、端末を閉じてもアプリケーションは終了しなくなりました。
しかし、アプリケーションを起動するたびにこれを自動的に行うにはどうすればよいですか?
最も簡単な方法は、以下を実行することです。
daemon firefox
ターミナル自体を使い続けたり閉じたりすることができます
編集:a より良い答え はI-Vによって提供されました。
これを自動的に行うには、bashエイリアスを使用できます。ホームディレクトリの.bash_aliasesファイルに次の行を追加すると、コマンドmy_application
を使用して、ターミナルから任意のアプリケーションs my_application
を起動し、自動的にバックグラウンドに配置して、そのターミナルから所有権を剥奪することができます。
# start programs from Shell but immediately disown them
startAndDisown() {
$1 & disown $!
}
alias s=startAndDisown
$!
は、最後の非同期ジョブのPIDを自動的に返すことに注意してください。