进程管理
ps [-e -f]
查看进程- -e 显示全部进程;-f 显示详细信息
- 查找进程
ps -ef | grep name
kill [-9] 进程ID
关闭进程- -9:强制关闭
工作计划¶
- 使用 crontab 实现计划(周期)任务
- 添加计划任务
crontab -e
- 查看已经添加了的任务
crontab -l
- 删除任务
crontab -r
工作控制¶
- 信号
- SIGHUP (Hangup):
- 描述: SIGHUP 信号通常用于通知进程重新加载其配置或进行一些其他操作,通常由终端会话结束时触发。例如,当你关闭一个终端会话时,会向该会话中的进程发送 SIGHUP 信号,以便它们有机会执行清理工作或重新加载配置。
- SIGINT (Interrupt):
- 描述: SIGINT 信号通常由用户按下Ctrl+C组合键来触发,用于终止当前运行的进程。这是一种常见的方式来停止正在运行的程序。
- SIGTERM (Termination):
- 描述: SIGTERM 信号是用于请求进程正常终止的信号。进程可以捕获该信号并执行清理工作,然后正常退出。
- SIGKILL (Kill):
- 描述: SIGKILL 信号是用于强制终止进程的信号,进程无法捕获或忽略它。使用 SIGKILL 会立即终止进程,而不允许进程执行清理操作。
- 使用
Ctrl-C
来停止命令(将进程 stopped)的执行时,shell 会发送一个SIGINT
信号到进程。
#!/usr/bin/env python
import signal, time
# 捕获了ctrl-c发送的信号
def handler(signum, time):
print("\nI got a SIGINT, but I am not stopping")
signal.signal(signal.SIGINT, handler)
i = 0
while True:
time.sleep(.1)
print("\r{}".format(i), end="")
i += 1
- 一个不会在
ctrl-c
时终止的程序 - 可以使用
ctrl-\
发送 SIGQUIT 信号终止程序 Ctrl-Z
会让 shell 发送 SIGTSTP 信号(会将进程挂起为 suspended)-
关闭终端(ssh 断开连接)会发送另外一个信号 SIGHUP
-
jobs
命令会列出当前终端会话中尚未完成的全部任务 - 后台运行命令,在命令后面添加
$
后缀 - 恢复进程
bg %1
fg
恢复到前台执行,并输出到标准输出%
加上进程的 id
- 杀死进程
kill %1 kill -SIGHUP %1
(针对 job 的的 kill)- 可以用于发送任何信号
kill -STOP %1
$ sleep 1000 ^Z [1] + 18653 suspended sleep 1000 $ nohup sleep 2000 & [2] 18745 appending output to nohup.out $ jobs [1] + suspended sleep 1000 [2] - running nohup sleep 2000 $ bg %1 [1] - 18653 continued sleep 1000 $ jobs [1] - running sleep 1000 [2] + running nohup sleep 2000 $ kill -STOP %1 [1] + 18653 suspended (signal) sleep 1000 $ jobs [1] + suspended (signal) sleep 1000 [2] - running nohup sleep 2000 $ kill -SIGHUP %1 [1] + 18653 hangup sleep 1000 $ jobs [2] + running nohup sleep 2000 $ kill -SIGHUP %2 $ jobs [2] + running nohup sleep 2000 $ kill %2 [2] + 18745 terminated nohup sleep 2000 $ jobs
- 可以用于发送任何信号
监控¶
top
查看信息(类似任务管理器),5 s 刷新一次
-
- 第一行的 load average 表示 1 5 15 分钟内 cpu 平均负载
- 先除以 cpu 的核心数
- 若是 load < 0.7 并不会去关注他;
- 若是 0.7< load < 1 的时候我们就需要稍微关注一下了,虽然还可以应付但是这个值已经离临界不远了;
- 若是 load = 1 的时候我们就需要警惕了,因为这个时候已经没有更多的资源的了,已经在全力以赴了;
- 若是 load > 5 的时候系统已经快不行了,这个时候你需要加班解决问题了
- 三个数值结合起来可以分析趋势
-
-
-
- 重定向 top -b > test.txt
-
-
ps 静态查看进程
- 查看全部进程
ps aux
- 查看全部进程
-
打印进程树
pstree
-
网络监控