Linux nohup後臺執行程序
Linux nohup後臺執行程序
需求:
存儲已滿,需要刪除過時數據
條件:
數據比較大,刪除需要很長時間,直接執行刪除命令肯定不行,因爲視窗一旦關閉,命令就死掉;那麼就讓它執行也不行,因爲這臺電腦可能有其他維護公司也會用此電腦,這也不安全。所以需要後臺執行該程序
步驟思路:
1:檢視需要刪除的數據
2:編輯刪除腳本
3:後臺執行腳本(有多個腳本,每個視窗最好只執行一個)
4:檢視執行的後臺進程
5: fg %n將後臺腳本調到前臺執行
6:驗證是否在後臺執行
7:終止後臺執行的刪除腳本
操作方法
(01)檢視需要刪除的數據[root@NAS dj]# df -h檔案系統 容量 已用 可用 已用% 掛載點/dev/sda3 192G 5.6G 177G 4% //dev/sda1 190M 12M 169M 7% /boottmpfs 3.9G 0 3.9G 0% /dev/shm/dev/sdb1 9.0T 7.0T 1.6T 82% /var/www/html/dj/dev/sdb2 11T 9.9T 113G 99% /var/www/html/djbk需要刪除的數據:/var/www/html/dj/2012/var/www/html/djbk/2013
(02)編輯刪除腳本[root@NAS script]# cat rm_#!/bin/bashrm -rf /var/www/html/dj/2012[root@NAS script]# cat rm_#!/bin/bashrm -rf /var/www/html/djbk/2013注意:編輯完腳本後需要賦予腳本執行權限
(03)後臺執行腳本(有多個腳本,每個視窗最好只執行一個)[root@NAS script]# nohup ./rm_ &[root@NAS script]# nohup ./rm_ &注意:執行腳本的時候,兩個腳本不要在同一個視窗執行,如果在同一個視窗執行,下個執行命令需要等待前面一個執行完成才能執行,這種效率不是我們要的
(04)檢視執行的後臺進程jobs 只能檢視當前視窗的後臺進程,如果關閉了後臺執行腳本的視窗,該命令失效,這個時候就只能用到下面的命令檢視ps -ef 可以檢視主機所有執行的進程 ps -ef | grep 過濾條件
(05)fg %n將後臺腳本調到前臺執行fg %n 將當前後臺執行程序調到前臺執行如果執行完後臺腳本命令,當前視窗沒有關閉,可以執行jobs檢視當前視窗執行的後臺進程的進程號,再透過fg %n,將此後臺進程調到前臺執行,如果不想執行該腳本,直接ctl +c 關閉該視窗
(06)驗證是否在後臺執行關閉該連接工具後在開啟檢視,這時候jobs已經不能使用,只能透過以下方式檢視後臺執行的腳本是否正在執行[root@NAS script]# ps -ef | grep rmroot 2331 89 0 Nov02 ? 00:00:00 [ib_inform]root 23792 1 0 09:53 ? 00:00:00 /bin/bash ./rm_ot 23793 23792 0 09:53 ? 00:00:23 rm -rf /var/www/html/dj/2012root 23797 1 0 09:55 ? 00:00:00 /bin/bash ./rm_ot 23798 23797 0 09:55 ? 00:00:23 rm -rf /var/www/html/djbk/2013root 23998 23889 0 10:36 pts/1 00:00:00 grep rm
(07)終止後臺執行的刪除腳本刪除命令:kill -9 進程號注意:刪除的時候不能刪除查找查找命令,否則會照成關機