Linux nohup后台运行程序

作者:小橘猫 | 创建时间: 2023-04-22
Linux nohup后台运行程序 需求: 存储已满,需要删除过时数据 条件: 数据比较大,删除需要很长时间,直接执行删除命令肯定不行,因为窗口一旦关闭,命令就死掉;那么就让它运行也不行,因为这台电脑可能有其他维护公司也会用此电脑,这也不安...
Linux nohup后台运行程序

操作方法

查看需要删除的数据 [root@NAS dj]# df -h 文件系统              容量  已用 可用 已用% 挂载点 /dev/sda3             192G  5.6G  177G   4% / /dev/sda1             190M   12M  169M   7% /boot tmpfs                 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

编辑删除脚本 [root@NAS script]# cat rm_2012.sh #!/bin/bash rm -rf /var/www/html/dj/2012 [root@NAS script]# cat rm_2013.sh #!/bin/bash rm -rf /var/www/html/djbk/2013 注意:编辑完脚本后需要赋予脚本执行权限

后台执行脚本(有多个脚本,每个窗口最好只执行一个) [root@NAS script]# nohup ./rm_2012.sh  & [root@NAS script]# nohup ./rm_2013.sh  & 注意:执行脚本的时候,两个脚本不要在同一个窗口执行, 如果在同一个窗口执行,下个执行命令需要等待前面一个执行完成才能执行, 这种效率不是我们要的

查看运行的后台进程 jobs   只能查看当前窗口的后台进程,如果关闭了后台执行脚本的窗口,该命令失效,这个时候就只能用到下面的命令查看 ps -ef    可以查看主机所有运行的进程   ps -ef | grep 过滤条件

fg %n将后台脚本调到前台执行 fg %n  将当前后台运行程序调到前台执行 如果执行完后台脚本命令,当前窗口没有关闭,可以执行jobs查看当前窗口运行的后台进程的进程号,再通过fg %n,将此后台进程调到前台执行,如果不想执行该脚本,直接ctl +c 关闭该窗口

验证是否在后台执行 关闭该连接工具后在打开查看,这时候jobs已经不能使用,只能通过以下方式查看后台执行的脚本是否正在执行 [root@NAS script]# ps -ef | grep rm root      2331    89  0 Nov02 ?        00:00:00 [ib_inform] root     23792     1  0 09:53 ?        00:00:00 /bin/bash ./rm_2012.sh root     23793 23792  0 09:53 ?        00:00:23 rm -rf /var/www/html/dj/2012 root     23797     1  0 09:55 ?        00:00:00 /bin/bash ./rm_2013.sh root     23798 23797  0 09:55 ?        00:00:23 rm -rf /var/www/html/djbk/2013 root     23998 23889  0 10:36 pts/1    00:00:00 grep rm

终止后台运行的删除脚本 删除命令:kill -9  进程号 注意:删除的时候不能删除查找查找命令,否则会照成关机

点击展开全文

更多推荐