從終端啟動和分離程式最有效的方法?

從終端啟動和分離程式最有效的方法?

我試圖以發生以下情況的方式從終端啟動程式:

  1. 關閉終端並不會關閉程式
  2. 開啟、使用或關閉時程式不會向終端輸出任何內容
  3. 終端可免費用於其他用途
  4. 該命令簡短而甜蜜
  5. 無需擔心輸出文件

答案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 %%

否認後台進程意味著 shell 將不再追蹤它。它不會告訴你什麼時候完成。它不會阻止您關閉 shell。%%意思是「最近的後台作業」。

如果您想隱藏所有詳細信息,請在 .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/

答案4

我會推薦多路復用器, 作為任思源建議,或GNU 螢幕。這樣,您就可以獲得一個新的命令終端機。您可以將其拆下並忘記它,但如果您改變主意,則可以恢復。

相關內容