Linux nohup後台運行程序
- 互聯網
- 關注:1.78W次
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 進程號注意:刪除的時候不能刪除查找查找命令,否則會照成關機
- 文章版權屬於文章作者所有,轉載請註明 https://miaozhigu.com/sm/hulianwang/xvd9j3.html