後台工作

後台工作

我透過 ssh 連接到伺服器,並且想要運行一個需要很長時間的進程。我透過在筆記型電腦終端機中使用 ssh 連接到伺服器,但我希望能夠關閉筆記型電腦,但仍然可以在伺服器上運行進度。由於它們是兩台獨立的計算機,看來我應該能夠做到這一點,但我不確定是否可以透過 ssh 來做到這一點。

答案1

這很簡單,&例如在命令後面添加一個

bash script.sh &

即使您退出會話或關閉終端,它也會繼續執行。
另一種方法是使用nohup命令並執行你的命令。例如

nohup bash script.sh

尋找更多使用man nohup並關注具有相似方向的問題。

答案2

後台工作

在背景運行

program &

在背景運行並在斷開連接後繼續。也重定向stdout~/nohup.out.

nohup program &

相同但重定向到另一個文件

nohup program > "another file" &

注意上述命令,您可以使用該jobs命令查看後台作業。

相同,但從職位列表中刪除

nohup program > "another file" & disown

持續會話

請參閱 gnu screentmuxvnc。它們允許您在斷開連接時保持會話打開。

格努screen

#create a screen session (do this once)
screen -d -m

#attach to the session
screen -x

您還可以擁有多個(命名會話)

#create a screen session (do this once)
screen -d -m -S a_name

#attach to the session
screen -x -S a_name

請注意,在內部時,ctrl_a 用於控制螢幕。 ctrl_a ctrl_a 將 ctrl_a 傳遞給 shell。

虛擬網路控制器

#create a vnc session (do this once)
vncserver -from 127.1.0.1 -geometry 1920x1000 :10

#attach to the session (from a remote machine)
ssvnc Vnc+ssh://«user»@«machine-name»:10

更改幾何形狀以修復您的顯示器,也許可以更改顯示器編號。

筆記:

本機上的任何人都可以連接到 VNC 會話。

如果您有足夠的安全性,您可以添加-SecurityTypes None以關閉 VNC 安全性ssh

127.1.0.1處於環回範圍內。只有本機上的程序才能連線。您可以透過ssh(ssvnc)遠端連線。您可以使用nftables來限制哪些使用者可以連線到127.1.0.1。環回127.0.0.1範圍內有很多地址127.255.255.254(大約1600萬個),因此可以為每個用戶分配一個,並且仍然有空閒。

相關內容