跳至內容

如何在Linux系統下流暢切換不同的應用

更新時間
快连VPN:速度和安全性最佳的VPN服务
快连VPN:速度和安全性最佳的VPN服务
通過進程的前後臺切換方式實現不同應用的切換。背景:linux啓動一個程序後,切換到後臺執行,想繼續在linux操作。

在Linux中,你可以使用以下幾種方法使一個程序在後臺啓動並退出,但仍然保持其進程運行:

一、Linux啓動一個程序在後臺執行

1. 使用nohup和&:

$ nohup your_program &
登錄後複製

使用nohup命令可以使程序忽略掛斷信號(SIGHUP),這樣即使你退出了終端,程序也會繼續運行。&符號使程序在後臺運行。

2. 使用ctrl+Z:

如果你已經在前臺啓動了程序,可以使用ctrl+z命令將其移到後臺:

$ ./your_program# 運行在前臺$ 按 Ctrl + Z# 將程序暫停,並將其移到後臺 $ bg#在後臺繼續運行程序$ disown -h# 使程序在你退出終端時仍然運行
登錄後複製

3.使用screen:

screen是一個在UNIX和Linux系統上運行的終端複用器,它允許用戶在同一臺機器上的一個物理終端上啓動多個虛擬終端。

通過創建一個新的會話,你可以在其中運行程序,並且即使退出終端,該會話仍將保持活動狀態。隨後,你可以重新連接到會話來查看和控制程序的運行。

screen的功能

screen的功能大體有三個:

  • 會話恢復:只要Screen本身沒有終止,在其內部運行的會話都可以恢復。這一點對於遠程登錄的用戶特別有用——即使網絡連接中斷,用戶也不會失去對已經打開的命令行會話的控制。只要再次登錄到主機上執行screen -r就可以恢復會話的運行。同樣在暫時離開的時候,也可以執行分離命令detach,在保證裏面的程序正常運行的情況下讓Screen掛起(切換到後臺)。這一點和圖形界面下的VNC很相似。
  • 多窗口:在Screen環境下,所有的會話都獨立的運行,並擁有各自的編號、輸入、輸出和窗口緩存。用戶可以通過快捷鍵在不同的窗口下切換,並可以自由的重定向各個窗口的輸入和輸出。
  • 會話共享:Screen可以讓一個或多個用戶從不同終端多次登錄一個會話,並共享會話的所有特性(比如可以看到完全相同的輸出)。它同時提供了窗口訪問權限的機制,可以對窗口進行密碼保護。

如何使用screen :安裝 sudo apt install screen

3.1 創建會話

$ screen -S session_name your_program
登錄後複製

3.2 要重新連接到此會話:

$ screen -r session_name
登錄後複製

3.3 中途退出會話,但程序繼續運行:

如果你想從 screen 會話中退出,但不終止正在運行的程序,你可以按下 Ctrl + A,然後按下 D。

這將會從 screen 會話中分離,但程序仍然在後臺運行。

示例:使用secreen開啓多個會話在會話中執行程序。

每個會話相當於一個邏輯終端,可以退出會話,讓程序依然運行。

$ screen -S appDemo_session ./appDemo.lua# 開啓新的會話,並執行appDemo腳本程序> helpAvailable commands:1. show2. exit3. help4. run> # 按ctrl+AD 退出會話[detached from 1546455.appDemo_session]$ screen -r appDemo_session[detached from 1546455.appDemo_session]$$$ screen -ls# 查看所有會話There is a screen on:1546455.appDemo_session (2024年01月24日 10時01分53秒) (Detached)1 Socket in /run/screen/S-zsh.$
登錄後複製

3.4 結束一個 screen 會話:

如果你想結束一個 screen 會話並停止其中的程序,你可以首先使用 screen -r [會話名稱或ID] 重新連接到該會話,然後按下 Ctrl + C 來終止程序。

接着,你可以使用 exit 或按 Ctrl + D 來結束該 screen 會話。

$ screen -S appDemo_session ./appDemo.lua-------------以下在在會話中的邏輯終端顯示,退出後會消失> helpAvailable commands:1. show2. exit3. help4. run> exitexitCLI-------------[screen is terminating]$
登錄後複製

3.5 創建多個窗口:

在同一個 screen 會話中,你可以使用 Ctrl + A 然後再按 C 來創建一個新的窗口。

每個窗口可以有自己的命令行歷史。要切換窗口,只需按 Ctrl + A 然後按 N(下一個)或 P(上一個)。

要關閉窗口,只需按 Ctrl + A 然後按 K,然後選擇要關閉的窗口。

3.6 命名窗口:

你可以給窗口命名以方便識別。只需按 Ctrl + A 然後按 A(重命名)。輸入新名稱並按回車。

3.7 查看所有窗口,

可以按下Ctrl+a,然後按下w鍵。這將顯示當前screen會話中的所有窗口列表,包括窗口的編號和名稱。

$ screen -S appDemo_session ./appDemo.lua-------------以下在在會話中的邏輯終端顯示,退出後會消失> helpAvailable commands:1. show2. exit3. help4. run>$ lsappDemo.lua# 按ctrl+A 然後按K,輸入y表示結束當前窗口Really kill this window [y/n]
登錄後複製

在一個會話中創建多個窗口

$ lsappDemo.lua# 按三次ctrl+a,然後按c,創建三個各自獨立的窗口,每個窗口有自己的命令行歷史# 然後按 ctrl+a,然後按w查看所有窗口0$ appDemo.lua1$ bash2-$ bash3*$ bash# 現在相當於一個會話appDemo_session中有四個窗口,需要在四個窗口都exit才能退出該會話
登錄後複製

二、ctrl+Z停止了進程之後,怎麼再進入該程序?

在Unix和Linux系統中,當你使用Ctrl+Z將一個程序暫停並放到後臺時,該程序實際上是被掛起(暫停)了。

爲了再次運行這個程序,你可以使用以下方法:

  • bg (Background) :使用bg命令可以將掛起的程序放到後臺繼續運行。
  • bg
    登錄後複製
  • fg (Foreground) :如果你想要將程序重新移到前臺,可以使用fg命令。
  • fg %1
    登錄後複製

    其中%1是你想要移到前臺的掛起程序的編號。你可以使用jobs命令查看掛起的程序的編號。

    3. jobs:

    使用jobs命令可以列出當前掛起的程序。這些程序的編號可以幫助你確定要使用fg或bg命令時應該使用的編號。

    jobs -l# 列出所有掛起的程序及其PID
    登錄後複製
  • kill:如果你想要結束一個掛起的程序,可以使用kill命令。但是,首先確保你真的想要結束它。
  • kill %1
    登錄後複製

    請注意,上述方法主要適用於shell環境中。如果你在圖形界面中(如使用X Window System)運行程序,那麼你可能需要使用不同的方法來控制程序的運行。

    三、綜合example示範

    $ ./student===== 學生信息管理系統 =====1. 錄入學生信息2. 顯示學生信息3. 查詢學生信息4. 修改學生信息5. 刪除學生信息6. 退出請選擇操作: ^Z[1]+已停止 ./student$ bg[1]+ ./student &[1]+已停止 ./student$ jobs -l[1]+ 1545288 停止 (tty 輸入) ./student$ ./stu11Student Information Management System1. Add Student2. Display Students3. Search Student4. Delete Student5. ExitEnter your choice: ^Z[2]+已停止 ./stu11$ jobs -l[1]- 1545288 停止 (tty 輸入) ./student[2]+ 1545290 停止./stu11$
    登錄後複製
    $ ./appDemo.lua> helpAvailable commands:1. show2. exit3. help4. run> ^Z[2]+已停止 ./appDemo.lua$ jobs -l[1]- 1545480 停止./stu11[2]+ 1545484 停止./appDemo.lua$ bg[2]+ ./appDemo.lua &$ fg %2./appDemo.luaUnknown command. Type 'help' for available commands.> helpAvailable commands:1. show2. exit3. help4. run> ^Z[2]+已停止 ./appDemo.lua
    登錄後複製

    以上就是如何在Linux系統下流暢切換不同的應用的詳細內容,更多請關注本站其它相關文章!

    更新時間

    發表留言

    請注意,留言須先通過審核才能發佈。