透過進程的前後台切換方式實現不同應用的切換。
背景: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
命令可以将挂起的程序放到后台继续运行。bg
fg
命令。fg %1
其中%1
是你想要移到前台的挂起程序的编号。你可以使用jobs
命令查看挂起的程序的编号。
3. jobs:
使用jobs
命令可以列出当前挂起的程序。这些程序的编号可以帮助你确定要使用fg
或bg
命令时应该使用的编号。
jobs -l# 列出所有挂起的程序及其PID
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中文網其他相關文章!

如果您想在不支持的國家,地區或地區通過VPN使用Chatgpt,您知道哪個是ChatGpt最好的VPN?在這篇文章中,PHP.CN軟件將為您提供一些不錯的選擇。您可以根據要求的人選擇一個

如何修復Windows 11/10上的“ XboxPcappft.exe不良圖像”問題?來自PHP.CN的這篇文章提出了解決煩人問題的多種方法。請繼續閱讀。

當您想在OneDrive中刪除文件或文件夾時該怎麼辦,但是發現無法刪除OneDrive文件或文件夾?現在,您可以從php.cn讀取此帖子,以獲取修復“ OneDrive文件無法在Windows 1中刪除的最佳解決方案”

啟動設備時,錯誤消息“顯示連接可能是有限的”是一個煩人的問題。在PHP.CN的這篇文章中,您可以獲取有關導致此問題以及如何快速解決問題的詳細信息。

Microsoft向Dev Channel中的內部人員釋放了新的構建,它是Windows 11 Build 25115。與Beta通道發布的構建相比,這是一個更高的構建。您可以遵循此PHP.CN帖子以了解有關它的一些相關信息。

如何釋放C驅動器上的空間,還是如何清除C驅動器上的浪費?這是PHP.CN關注的主題。如果您的C驅動器充滿了舊應用程序和不必要的程序,則可以選擇清理它。讓我們開始。

Chatgpt已使用GPT-4更新。為了幫助您更好地理解此更新,我們將介紹Chatgpt 4和Chatgpt 3之間的差異。此外,如果要在Windows上恢復已刪除的文件,則可以嘗試PHP.CN電源數據恢復。

如果使用Windows 11 N或KN版本,如何下載和安裝媒體功能包? 在這篇文章中,PHP.CN提供了有關獲取Windows 11 Media功能包的分步指南。讓我們查看一些細節。


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SublimeText3漢化版
中文版,非常好用

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具