目錄
2. 使用ctrl Z" >2. 使用ctrl Z
3.使用screen" >3.使用screen
3.1 建立會話
3.2 若要重新連線到此會話:
3.3 中途退出會話,但程式繼續運行:
3.4 結束一個 screen 會話:
3.5 建立多個視窗:
3.6 命名視窗:
3.7 查看所有窗口,
二、ctrl+Z停止了进程之后,怎么再进入该程序?" >二、ctrl+Z停止了进程之后,怎么再进入该程序?
三、综合example示范" >三、综合example示范
首頁 電腦教學 電腦知識 如何在Linux系統下流暢切換不同的應用

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

Feb 19, 2024 pm 03:00 PM
linux 程式 後台

透過進程的前後台切換方式實現不同應用的切換。

背景:linux啟動一個程式後,切換到背景執行,想繼續在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脚本程序
> help
Available commands:
1. show
2. exit
3. help
4. 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
-------------以下在在会话中的逻辑终端显示,退出后会消失
> help
Available commands:
1. show
2. exit
3. help
4. run
> exit
exitCLI
-------------
[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
-------------以下在在会话中的逻辑终端显示,退出后会消失
> help
Available commands:
1. show
2. exit
3. help
4. run
>


$ ls
appDemo.lua
# 按ctrl+A 然后按K,输入y表示结束当前窗口
Really kill this window [y/n]
登入後複製

在一個會話中建立多個視窗

$ ls
appDemo.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命令可以列出当前挂起的程序。这些程序的编号可以帮助你确定要使用fgbg命令时应该使用的编号。

    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
    
    
    $ ./stu11
    
    Student Information Management System
    1. Add Student
    2. Display Students
    3. Search Student
    4. Delete Student
    5. Exit
    Enter your choice: ^Z
    [2]+已停止 ./stu11
    $ jobs -l
    [1]- 1545288 停止 (tty 输入) ./student
    [2]+ 1545290 停止./stu11
    $
    登入後複製
    $ ./appDemo.lua
    > help
    Available commands:
    1. show
    2. exit
    3. help
    4. run
    > ^Z
    [2]+已停止 ./appDemo.lua
    $ jobs -l
    [1]- 1545480 停止./stu11
    [2]+ 1545484 停止./appDemo.lua
    $ bg
    [2]+ ./appDemo.lua &
    $ fg %2
    ./appDemo.lua
    
    Unknown command. Type 'help' for available commands.
    > help
    Available commands:
    1. show
    2. exit
    3. help
    4. run
    > ^Z
    [2]+已停止 ./appDemo.lua
    登入後複製

    以上是如何在Linux系統下流暢切換不同的應用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

    本網站聲明
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

    熱AI工具

    Undresser.AI Undress

    Undresser.AI Undress

    人工智慧驅動的應用程序,用於創建逼真的裸體照片

    AI Clothes Remover

    AI Clothes Remover

    用於從照片中去除衣服的線上人工智慧工具。

    Undress AI Tool

    Undress AI Tool

    免費脫衣圖片

    Clothoff.io

    Clothoff.io

    AI脫衣器

    Video Face Swap

    Video Face Swap

    使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

    熱工具

    記事本++7.3.1

    記事本++7.3.1

    好用且免費的程式碼編輯器

    SublimeText3漢化版

    SublimeText3漢化版

    中文版,非常好用

    禪工作室 13.0.1

    禪工作室 13.0.1

    強大的PHP整合開發環境

    Dreamweaver CS6

    Dreamweaver CS6

    視覺化網頁開發工具

    SublimeText3 Mac版

    SublimeText3 Mac版

    神級程式碼編輯軟體(SublimeText3)

    vscode需要什麼電腦配置 vscode需要什麼電腦配置 Apr 15, 2025 pm 09:48 PM

    VS Code 系統要求:操作系統:Windows 10 及以上、macOS 10.12 及以上、Linux 發行版處理器:最低 1.6 GHz,推薦 2.0 GHz 及以上內存:最低 512 MB,推薦 4 GB 及以上存儲空間:最低 250 MB,推薦 1 GB 及以上其他要求:穩定網絡連接,Xorg/Wayland(Linux)

    Linux體系結構:揭示5個基本組件 Linux體系結構:揭示5個基本組件 Apr 20, 2025 am 12:04 AM

    Linux系統的五個基本組件是:1.內核,2.系統庫,3.系統實用程序,4.圖形用戶界面,5.應用程序。內核管理硬件資源,系統庫提供預編譯函數,系統實用程序用於系統管理,GUI提供可視化交互,應用程序利用這些組件實現功能。

    notepad怎麼運行java代碼 notepad怎麼運行java代碼 Apr 16, 2025 pm 07:39 PM

    雖然 Notepad 無法直接運行 Java 代碼,但可以通過借助其他工具實現:使用命令行編譯器 (javac) 編譯代碼,生成字節碼文件 (filename.class)。使用 Java 解釋器 (java) 解釋字節碼,執行代碼並輸出結果。

    vscode 無法安裝擴展 vscode 無法安裝擴展 Apr 15, 2025 pm 07:18 PM

    VS Code擴展安裝失敗的原因可能包括:網絡不穩定、權限不足、系統兼容性問題、VS Code版本過舊、殺毒軟件或防火牆干擾。通過檢查網絡連接、權限、日誌文件、更新VS Code、禁用安全軟件以及重啟VS Code或計算機,可以逐步排查和解決問題。

    vscode終端使用教程 vscode終端使用教程 Apr 15, 2025 pm 10:09 PM

    vscode 內置終端是一個開發工具,允許在編輯器內運行命令和腳本,以簡化開發流程。如何使用 vscode 終端:通過快捷鍵 (Ctrl/Cmd ) 打開終端。輸入命令或運行腳本。使用熱鍵 (如 Ctrl L 清除終端)。更改工作目錄 (如 cd 命令)。高級功能包括調試模式、代碼片段自動補全和交互式命令歷史。

    git怎麼查看倉庫地址 git怎麼查看倉庫地址 Apr 17, 2025 pm 01:54 PM

    要查看 Git 倉庫地址,請執行以下步驟:1. 打開命令行並導航到倉庫目錄;2. 運行 "git remote -v" 命令;3. 查看輸出中的倉庫名稱及其相應的地址。

    vscode在哪寫代碼 vscode在哪寫代碼 Apr 15, 2025 pm 09:54 PM

    在 Visual Studio Code(VSCode)中編寫代碼簡單易行,只需安裝 VSCode、創建項目、選擇語言、創建文件、編寫代碼、保存並運行即可。 VSCode 的優點包括跨平台、免費開源、強大功能、擴展豐富,以及輕量快速。

    vscode 可以用於 mac 嗎 vscode 可以用於 mac 嗎 Apr 15, 2025 pm 07:36 PM

    VS Code 可以在 Mac 上使用。它具有強大的擴展功能、Git 集成、終端和調試器,同時還提供了豐富的設置選項。但是,對於特別大型項目或專業性較強的開發,VS Code 可能會有性能或功能限制。

    See all articles