欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Linux讓程序在后臺(tái)運(yùn)行的四種方法

 更新時(shí)間:2024年03月05日 11:16:11   作者:Pan_peter  
這篇文章主要介紹了Linux讓程序在后臺(tái)運(yùn)行的四種方法和使用推薦,通過代碼示例講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下

一、第一種方法(加“&”符號(hào))

如果想讓程序在后臺(tái)運(yùn)行,執(zhí)行程序的時(shí)候,命令的最后面加“&”符號(hào)。

# 執(zhí)行文件
./test.py &
 
# 查看是否在后臺(tái)運(yùn)行
ps -ef|grep test
 
# 后臺(tái)的程序 需要關(guān)閉時(shí),需要kill命令停止
killall [程序名]

注意:這種方法,查看運(yùn)行日志很不方便(不推薦) 

二、第二種方法(nohup命令) 

# 不推薦使用
nohup python -u test.py > test.log 2>&1 & 

參數(shù)說明:

test.py: 你需要后臺(tái)運(yùn)行的程序

>: 日志文件追加到文件中

test.log: 運(yùn)行的日志,或你的文件的輸出內(nèi)容

& 是一個(gè)描述符,如果1或2前不加&,會(huì)被當(dāng)成一個(gè)普通文件。

1>&2 意思是把標(biāo)準(zhǔn)輸出重定向到標(biāo)準(zhǔn)錯(cuò)誤.

2>&1 意思是把標(biāo)準(zhǔn)錯(cuò)誤輸出重定向到標(biāo)準(zhǔn)輸出。

&>filename 意思是把標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤輸出都重定向到文件filename中

# 不推薦使用 
nohup python run.py &
 
# 1、原因:在run.py的目錄默認(rèn)直接生成了nohup.out文件
# 2、原因:有些系統(tǒng)無法執(zhí)行
# 權(quán)限不足時(shí) 加sudo
nohup sudo python -u test.py > test.log2>&1 &

三、第三種方法(screen命令)  

Screen是一個(gè)全屏窗口管理器,

它在多個(gè)進(jìn)程(通常是交互式shell)之間多路傳輸物理終端。

# centos安裝screen
 yum install -y screen
# 在Ubuntu上安裝并使用screen
sudo apt update  # 更新包列表
sudo apt install screen  # 安裝screen工具
# 創(chuàng)建一個(gè)新的窗口
screen -S test
 
# 進(jìn)入窗口后 執(zhí)行文件
python test.py
 
# 退出當(dāng)前窗口
ctrl+a+d   (方法1:保留當(dāng)前窗口)
screen -d  (方法2:保留當(dāng)前窗口)
exit       (方法3:退出程序,并關(guān)閉窗口)
 
# 查看窗口
screen -ls
 
# 重新連接窗口
screen -r id或窗口名稱
 
# 示例:
screen -r 344 
screen -r test

快捷鍵:

Ctrl+a c :創(chuàng)建窗口
Ctrl+a w :窗口列表 

Ctrl+a n :下一個(gè)窗口
Ctrl+a p :上一個(gè)窗口

Ctrl+a 0-9 :在第0個(gè)窗口和第9個(gè)窗口之間切換

Ctrl+a K(大寫) :關(guān)閉當(dāng)前窗口,并且切換到下一個(gè)窗口
(當(dāng)退出最后一個(gè)窗口時(shí),該終端自動(dòng)終止,并且退回到原始shell狀態(tài))

exit :關(guān)閉當(dāng)前窗口,并且切換到下一個(gè)窗口
(當(dāng)退出最后一個(gè)窗口時(shí),該終端自動(dòng)終止,并且退回到原始shell狀態(tài))

Ctrl+a d :退出當(dāng)前終端,返回加載screen前的shell命令狀態(tài)

四、第四種方法(systemctl命令)

詳情請(qǐng)看:Linux命令之systemctl用法詳解_linux shell_腳本之家 (jb51.net)

因?yàn)閟ystemctl比較復(fù)雜,所以這里貼上鏈接

注意:systemctl設(shè)置好之后,可以一勞永逸!

五、總結(jié)

使用推薦

第一種方法不推薦使用 

第二種方法——在需要查看日志的情況下,建議使用(無需在關(guān)閉的那種)

第三種方法——在開啟后,還需要關(guān)閉或還需要輸入一些命令的時(shí)候下(推薦)

第四種方法——雖然需要學(xué)習(xí)的時(shí)間比前面幾種長,但是學(xué)會(huì)之后,會(huì)很方便

六、實(shí)用操作(重點(diǎn))

因?yàn)橐陨蠁蝹€(gè)操作,都會(huì)一些弊端

1、如果讓進(jìn)程在后臺(tái)運(yùn)行,并輸出日志(nohup命令),就不方便手動(dòng)停止進(jìn)程(需要用ps命令查看進(jìn)程)

2、如果讓進(jìn)程在后臺(tái)運(yùn)行,并方便停止(screen命令),就不方便查看程序輸出的日志

因此,我們可以使用組合技!(下面有例子)

1、安裝screen

# 在Ubuntu上安裝并使用screen
sudo apt update  # 更新包列表
sudo apt install screen  # 安裝screen工具
# 安裝screen
 yum install -y screen

2、新建窗口

# 創(chuàng)建一個(gè)新的窗口
screen -S test

3、執(zhí)行文件

# 進(jìn)入窗口后 執(zhí)行文件
python test.py > output.log 2>&1

4、退出該窗口

# 退出當(dāng)前窗口
ctrl+a+d   (方法1:保留當(dāng)前窗口)
screen -d  (方法2:保留當(dāng)前窗口)

5、查看程序輸出文件(output.log)

6、停止程序

# 1、重新連接窗口
screen -r id或窗口名稱
 
# 示例:
screen -r 344 
screen -r test
 
# 2、按 Ctrl + C 停止程序運(yùn)行

實(shí)在不行,就查看程序的運(yùn)行狀態(tài),也可以通過 ps 命令來查看程序是否在運(yùn)行

以上就是Linux讓程序在后臺(tái)運(yùn)行的四種方法的詳細(xì)內(nèi)容,更多關(guān)于Linux程序后臺(tái)運(yùn)行的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論