后台跑脚本使用的命令:
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 &
可以使用tail -f spider.log 实时查看输出的日志。
查看正在运行的进程
[root@ecs-s6-medium-2-linux-20191113090041 ~]
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 ~]
[root@ecs-s6-medium-2-linux-20191113090041 19602]
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]