Terminal

從終端執行時自動取消應用程序

  • May 10, 2020

從終端啟動應用程序後,如何自動取消應用程序的所有權?

例如:如果您啟動一個終端並執行firefox應用程序將啟動,但是當您關閉終端時,firefox 也將關閉。為避免無意中關閉從終端啟動的應用程序,可以先將它們置於後台,並帶有符號:firefox &這也恢復了使用該終端提示符的能力​​。接下來,您可以使用應用程序的程序 ID (PID) 從同一終端拒絕應用程序,請參見下面的範例:

$ firefox & 
$ ps | grep firefox
14917 pts/6    00:00:00 firefox
$ disown 14917

該應用程序現在獨立於您正在使用的終端執行,關閉終端將不再終止該應用程序。

但是,如何在每次啟動應用程序時自動執行此操作?

最簡單的方法是執行:

daemon firefox

因此您可以繼續使用/關閉終端本身

編輯:IV 提供了更好的答案。

要自動執行此操作,您可以使用 bash 別名。如果您將以下行添加到您的主目錄中的 .bash_aliases 文件中,您可以my_application使用以下命令從終端啟動任何應用程序,同時自動將其置於後台並隨後從該終端取消它s my_application

# start programs from shell but immediately disown them
startAndDisown() {
   $1 & disown $! 
}
alias s=startAndDisown

請注意,它會$!自動返回最後一個非同步作業的 PID。

引用自:https://unix.stackexchange.com/questions/284673