當前位置:首頁 » 編程軟體 » 腳本後台運行linux

腳本後台運行linux

發布時間: 2022-12-25 07:34:32

1. linux 遠程主機後台運行任務 掛起腳本

背景 :工作需要,需要遠程式控制制主機使其斷開Xshell後也能一直運行。
關鍵字 :& ,nohup,腳本掛起。

在應用Unix/Linux時,我們一般想讓某個程序在後台運行,於是我們將常會用 & 在程序結尾來讓程序自動運行。

鍵入Ctrl + C,發出SIGINT信號,程序會繼續運行

方法一、輸入命令:jobs

方法二:輸入命令:ps

fg、bg、jobs、&、nohup、ctrl+z、ctrl+c 命令

加在一個命令的最後,可以把這個命令放到後台執行,如

可以將一個正在前台執行的命令放到後台,並且處於暫停狀態。

查看當前有多少在後台運行的命令
jobs -l選項可顯示所有任務的PID,jobs的狀態可以是running, stopped, Terminated。但是如果任務被終止了(kill),shell 從當前的shell環境已知的列表中刪除任務的進程標識。

將後台中的命令調至前台繼續運行。如果後台中有多個命令,可以用fg %jobnumber(是命令編號,不是進程號)將選中的命令調出。

將一個在後台暫停的命令,變成在後台繼續執行。如果後台中有多個命令,可以用bg %jobnumber將選中的命令調出。

法子1:通過jobs命令查看job號(假設為num),然後執行kill %num
法子2:通過ps命令查看job的進程號(PID,假設為pid),然後執行kill pid
前台進程的終止:Ctrl+c

如果讓程序始終在後台執行,即使關閉當前的終端也執行(之前的&做不到),這時候需要nohup。該命令可以在你退出帳戶/關閉終端之後繼續運行相應的進程。
關閉中斷後,在另一個終端jobs已經無法看到後台跑得程序了,此時利用ps(進程查看命令)

如上所示:
nohup 和 & 組合了後台運行程序。
可以輸出到 out.log保存程序輸出,也可以輸出到/dev/null 即空設備,不保存輸出。

上面三種方式無論在nohup.out 或test.out都看不到數據結果,這是因為python執行有緩存輸出
解決

新的介面接入查看程序

使用&後台運行程序:

結果會輸出到終端
使用Ctrl + C發送SIGINT信號, 程序免疫
關閉session發送SIGHUP信號, 程序關閉

使用nohup運行程序:

結果默認會輸出到nohup.out
使用Ctrl + C發送SIGINT信號, 程序關閉
關閉session發送SIGHUP信號, 程序免疫
平日線上經常使用nohup和&配合來啟動程序:
同時免疫SIGINT和SIGHUP信號

同時,還有一個最佳實踐:
不要將信息輸出到終端標准輸出,標准錯誤輸出,而要用日誌組件將信息記錄到日誌里
nohup和&究竟有啥區別

2. linux怎麼開機啟動腳本並在後台運行

這種後台運行,你要允許,然後它運行就好了。

3. linux開機自動執行命令和腳本 自動啟動 自啟 進程一直運行

原文及更新: https://neucrack.com/p/91

直接在/etc/rc.local(/etc/rc.d/rc.local)文件中添加即可

上面這腳本實際上在使用時出現了問題, /home/neucrack/software/ss/start_ss_local.sh 這個命令始終沒有被執行,原因是 /home/neucrack/software/ss/start_kcptun_client.sh 中的命令阻塞了進程,導致後面一句始終沒有執行,可以將他們分別放到後台執行就行了,如何在後台執行可以看文章最後一部分

也可以自己手動在rc*.d中建立軟連接

桌面系統搜索 啟動 ,打開啟動管理器 添加刪除即可

一般有以下幾種方法:
1)在輸入命令的最前面加上 nohup 命令
如 nohup your_command & 這樣命令在你退出後仍然會在後台執行
2) setsid 命令
setsid your_command 該命令的結果是使你所運行的命令的父進程為init,所以只有關機該進程才會停止
3) (your_command &)
就是用括弧將你的命令括起來,這樣做也是使命令的父進程為init
4) disown
當你在命令行下輸入 your_command & 後命令就在後台執行了,然後執行jobs命令,該命令會列出當前正在後台執行的命令。例如輸入命令「top&」
然後執行"jobs"
輸出結果是
[1] + Suspended (tty output) top
注意行開頭方括弧內的數字,該數字叫做jobspec,是給當前後台運行的job的編號。這是你只要在命令行下輸入"disown -h 1" 後台運行的top命令就不會受到hangup信號的影響了。
5)使用 screen 命令
在命令行下輸入screen命令就開啟了一個screen進程,它就好像是一個全新的命令運行環境,在該環境中你可以像在正常的terminal下那樣執行
命令,但是這個screen是不受其父進程的hangup信號的影響的,既然screen不受其父進程影響,當你意外掉線或者退出系統時,在screen
中仍在執行的命令仍然會繼續執行。關於screen命令的使用方法你可以再去查閱相關資料。

4. 如何讓Linux的腳本關閉終端後繼續執行

加& 是不行的。

因為不管是後台還是前台,都是terminal 的子進程。terminal一關,父進程在推出前,會殺掉所有的子進程。


Linux 里有一些工具,可以脫鉤父子進程。比如screen,ubuntu/debian用apt安裝。

apt-getinstallscreen


用法:在terminal里打

screen

然後運行你的程序。

再按

ctrl +a, ctrl +d.

就脫鉤了。可以關terminal了。


想掛鉤,用

screen-r

如果有多個脫鉤進程,比如

:
8881.pts-0.Jordan(Detached)
8494.pts-0.Jordan(Detached)

screen-r[pid]

比如

screen-r8881

5. 每天三分鍾搞定linux shell腳本24 後台模式運行

當運行腳本的時候在最後加上符號 & ,則對應的腳本在 後台運行 。建立腳本為,

輸入 ./test.sh & 運行

運行後1.txt文件會不斷增加內容,但是腳本以後台運行不會在終端佔用。運行結果為:

輸入 jobs 可以看到這個後台進程:

這個時候如果輸入exit,不會提示有後台進程在運行,而且後台進程也會退出。因為終端會話退出的時候會給這個後台進程發送一個 SIGHUP信號 。如果想要終端退出之後,進程不退出,可以讓進程捕獲SIGHUP信號。當然還有另一個方法,使用 nohup 指令運行腳本,比如輸入:

當用 nohup 並使用後台模式運行之後,即使退出終端,進程也不會收到SIGHUP信號。並且nohup會自動把標准輸出和標准錯誤重定向到nohup.out的文件中。

一個 運行的進程或者暫停的進程 都是一個作業,使用 jobs 命令可以查看當前的作業狀態。輸入:

我當前的輸出為:

(上面的作業2是輸入 ctrl+z 後暫停的進程)

其中, + 號被當作是默認作業,每個作業的前面有自己的序號。如果後續操作不加序號,那麼就被當做是在操作默認作業。比如使用 fg 指令前台運行作業,就是把27652這個進程前台運行,如果輸入 fg 1 ,那麼就是操作作業 1 了。帶-號的表示下一個默認作業。

輸入 bg 1 把 1號作業 後台運行,輸入 fg 2 把 2號作業 前台運行。

6. linux腳本中,如何等待後台進程(之前用&放到後台)結束再執行後面的命令

用wait

比如下面的例子, cmd1 放入後台運行, 而cmd2 要等 cmd1結束後才會執行。

#!/bin/bash

cmd1 &

wait

cmd2

7. 在linux下怎麼讓一個腳本定時運行

Linux中,周期執行的任務一般由cron這個守護進程來處理 ps -ef | grep cron
cron讀取一個或多個配置文件,這些配置文件中包含了命令行及其調用時間。
cron的配置文件稱為「crontab」,是「cron table」的簡寫。

8. 寫了一個perl腳本,怎麼讓它在linux後台運行

運行時ctrl+z暫停程序
jobs -l 查看暫停程序的序號號
bg %jobnumber 將一個在後台暫停的命令,變成繼續執行
如果後台中有多個命令,可以用bg %jobnumber將選中的命令調出,%jobnumber是通過jobs命令查到的後台正在執行的命令的序號(不是pid)

9. linux環境下 腳本前台執行沒有問題,後台執行 就會stopped。

後台進程如果需要輸入東西的話,就會進入stopped狀態。nohup是忽略所有的掛斷信號,保證後台進程不間斷的執行。

10. 在Linux中如何讓腳本在後台運行

在執行腳本的最後加上&
或者將腳本寫到cron job中

熱點內容
生女的演算法 發布:2025-07-18 08:17:54 瀏覽:645
加密硬碟推薦 發布:2025-07-18 08:11:22 瀏覽:944
oppo手機的密碼是多少 發布:2025-07-18 08:10:27 瀏覽:764
2匹壓縮機重 發布:2025-07-18 08:01:40 瀏覽:181
雲蟻物聯的雲存儲怎麼取消退款 發布:2025-07-18 08:01:39 瀏覽:486
訪問電腦版網頁 發布:2025-07-18 08:01:02 瀏覽:246
php集成軟體 發布:2025-07-18 07:54:36 瀏覽:143
華為密碼多少我忘記了告訴我 發布:2025-07-18 07:53:05 瀏覽:286
安卓怎麼上傳音樂到網易雲 發布:2025-07-18 07:22:22 瀏覽:375
c語言保存txt文件 發布:2025-07-18 07:01:27 瀏覽:175