linux 后台运行 命令 nohup

本文介绍如何使用nohup命令使脚本在后台持续运行,即使终端关闭也不受影响。通过实例展示如何将输出重定向到日志文件,并使用top命令监控正在运行的进程,以及如何确定特定脚本的进程详情。

后台跑脚本使用的命令:

1.1 使用场景:

  • 使用终端启动了一个脚本 ,不小心关掉了终端, 那么脚本也终止运行了

1.2 解决方法:

  • 使用nohup命令,在程序的前面加上nohup,程序的后面加上&,这样程序就会一直执行直到结束。
  • 样例如下:
nohup python3 spider.py &
后台挂起运行python3 spider.py, 运行的日志输出到默认的nohup.out中
可以使用tail -f nohup.out实时查看输出的日志。

nohup python3 spider.py >spider.log 2>&1 &
# 这意思是将python3 spider.py 的执行放入后台执行, 且对ctrl +c免疫, 关闭shell窗口后,依然在服务器端执行,且将输出的日志重定向到spider.log中。
可以使用tail -f spider.log 实时查看输出的日志。

查看正在运行的进程

# 使用top命令查看实时运行的进程
[root@ecs-s6-medium-2-linux-20191113090041 ~]# top
top - 14:43:57 up 9 days,  5:15,  4 users,  load average: 2.19, 2.94, 3.26
Tasks:  98 total,   2 running,  96 sleeping,   0 stopped,   0 zombie
%Cpu(s):100.0 us,  0.0 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1881700 total,   252452 free,  1210260 used,   418988 buff/cache
KiB Swap:        0 total,        0 free,        0 used.   475104 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                                                                                                                                                                   
19602 root      20   0  234572  17368   1448 R 99.7  0.9   1723:15 python                                                                                                                                                                                                    
  999 root      20   0  122088   1008    408 S  0.3  0.1   3:30.76 wrapper                                                                                                                                                                                                   
 6606 polkitd   20   0 1441856 573620    160 S  0.3 30.5   8:41.57 mysqld                                                                                                                                                                                                    
    1 root      20   0  125500   2508   1120 S  0.0  0.1   0:04.98 systemd                                                                                                                                                                                                   
    2 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kthreadd                                                                                                                                                                                                  
    4 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:0H                                                                                                                                                                                              
    6 root      20   0       0      0      0 S  0.0  0.0   0:29.59 ksoftirqd/0                                                                                                                                                                                               
    7 root      rt   0       0      0      0 S  0.0  0.0   0:00.00 migration/0                                                                                                                                                                                               
    8 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcu_bh    
 后面还有一大堆, 最主要的看前几行就行了, 第一行是PID:19602的python 程序, python 程序那么多, 怎么查看是哪个脚本呢?
[root@ecs-s6-medium-2-linux-20191113090041 ~]# cd /proc/19602
[root@ecs-s6-medium-2-linux-20191113090041 19602]# ll
total 0
dr-xr-xr-x 2 root root 0 Nov 22 14:38 attr
-rw-r--r-- 1 root root 0 Nov 22 14:38 autogroup
-r-------- 1 root root 0 Nov 22 14:38 auxv
-r--r--r-- 1 root root 0 Nov 22 14:38 cgroup
--w------- 1 root root 0 Nov 22 14:38 clear_refs
-r--r--r-- 1 root root 0 Nov 22 14:38 cmdline
-rw-r--r-- 1 root root 0 Nov 22 14:38 comm
-rw-r--r-- 1 root root 0 Nov 22 14:38 coredump_filter
-r--r--r-- 1 root root 0 Nov 22 14:38 cpuset
`lrwxrwxrwx 1 root root 0 Nov 22 14:38 cwd -> /home/project/mycib/apps/spider`
-r-------- 1 root root 0 Nov 22 14:38 environ
`lrwxrwxrwx 1 root root 0 Nov 22 14:38 exe -> /usr/local/python3/bin/python3.6`
dr-x------ 2 root root 0 Nov 21 08:51 fd
dr-x------ 2 root root 0 Nov 22 14:38 fdinfo
-rw-r--r-- 1 root root 0 Nov 22 14:38 gid_map
-r-------- 1 root root 0 Nov 22 14:38 io
-r--r--r-- 1 root root 0 Nov 22 14:38 limits
-rw-r--r-- 1 root root 0 Nov 22 14:38 loginuid
dr-x------ 2 root root 0 Nov 22 14:38 map_files
-r--r--r-- 1 root root 0 Nov 22 14:38 maps
-rw------- 1 root root 0 Nov 22 14:38 mem
-r--r--r-- 1 root root 0 Nov 22 14:38 mountinfo
-r--r--r-- 1 root root 0 Nov 22 14:38 mounts
-r-------- 1 root root 0 Nov 22 14:38 mountstats
dr-xr-xr-x 5 root root 0 Nov 22 14:38 net
dr-x--x--x 2 root root 0 Nov 22 14:38 ns
-r--r--r-- 1 root root 0 Nov 22 14:38 numa_maps
-rw-r--r-- 1 root root 0 Nov 22 14:38 oom_adj
-r--r--r-- 1 root root 0 Nov 22 14:38 oom_score
-rw-r--r-- 1 root root 0 Nov 22 14:38 oom_score_adj
-r--r--r-- 1 root root 0 Nov 22 14:38 pagemap
-r-------- 1 root root 0 Nov 22 14:38 patch_state
-r--r--r-- 1 root root 0 Nov 22 14:38 personality
-rw-r--r-- 1 root root 0 Nov 22 14:38 projid_map
lrwxrwxrwx 1 root root 0 Nov 22 14:38 root -> /
-rw-r--r-- 1 root root 0 Nov 22 14:38 sched
-r--r--r-- 1 root root 0 Nov 22 14:38 schedstat
-r--r--r-- 1 root root 0 Nov 22 14:38 sessionid
-rw-r--r-- 1 root root 0 Nov 22 14:38 setgroups
-r--r--r-- 1 root root 0 Nov 22 14:38 smaps
-r--r--r-- 1 root root 0 Nov 22 14:38 stack
-r--r--r-- 1 root root 0 Nov 21 08:51 stat
-r--r--r-- 1 root root 0 Nov 22 13:59 statm
-r--r--r-- 1 root root 0 Nov 21 08:51 status
-r--r--r-- 1 root root 0 Nov 22 14:38 syscall
dr-xr-xr-x 3 root root 0 Nov 22 14:38 task
-r--r--r-- 1 root root 0 Nov 22 14:38 timers
-rw-r--r-- 1 root root 0 Nov 22 14:38 uid_map
-r--r--r-- 1 root root 0 Nov 22 14:38 wchan
[root@ecs-s6-medium-2-linux-20191113090041 19602]# 
重点看标黄的那两行, 使用的哪个python 和执行的哪个脚本 ,都在这里了     

# 或者使用如下命令,也可以看到哪个进程使用的哪个命令启动的
[root@ecs-s6-medium-2-linux-20191113090041 19602]# jobs -l
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值