Linux进程管理命令
ps查看进程,列出执行ps命令的那个时刻的进程快照。如果想要动态显示,使用top命令 参数格式: UNIX格式:一个"-"开头 BSD格式:没有"-"开头 GNU长格式:两个"-"开头 a # 显示与终端相关的所有进程,包含每个进程的完整路径 u # 显示进程的用户信息 x # 显示与终端无关的所有进程 -a # 显示所有终端下执行的进程 -u # 显示指定用户相关的进程信息 -e # 显示所有进程 -f # 额外显示UUID PPID C与STIME栏位 f # 显示进程树 -H # 显示进程树 -I # 以详细的格式来显示进程的状况 -o # 自定义输出指定字段,以逗号分隔 [[email?protected] ~]# ps PID TTY TIME CMD 1525 pts/0 00:00:00 bash 1884 pts/0 00:00:00 ps [[email?protected] ~]# ps -ef # 常用组合,UNIX格式组合 -e -f ,额外显示UID,PPID,C与STIME栏位 UID PID PPID C STIME TTY TIME CMD root 1 0 0 10:04 ? 00:00:01 /usr/lib/systemd/systemd --switched-rroot 2 0 0 10:04 ? 00:00:00 [kthreadd] root 3 2 0 10:04 ? 00:00:00 [ksoftirqd/0] root 5 2 0 10:04 ? 00:00:00 [kworker/0:0H] root 7 2 0 10:04 ? 00:00:00 [migration/0] [[email?protected] ~]# ps aux # BSD格式参数,使用a选项和x选项显示所有进程 u显示进程的用户信息
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.2 43680 4052 ? Ss 10:04 0:01 /usr/lib/systemd/systroot 2 0.0 0.0 0 0 ? S 10:04 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? S 10:04 0:00 [ksoftirqd/0] root 5 0.0 0.0 0 0 ? S< 10:04 0:00 [kworker/0:0H] root 7 0.0 0.0 0 0 ? S 10:04 0:00 [migration/0] [[email?protected] ~]# ps -l # UNIX格式参数,使用参数-l以详细的格式显示进程的状况 # F 代表这个进程的flag,4代表超级用户 # S 代表这个进程的状态(STAT), # PRI 优先级Priorty的缩写,执行顺讯 # NI NICE值 # ADDR 指出该进程在内存那个部分,如果是个running进程,一般是“-” # SZ 使用掉的内存大小 # WCHAN 进程是否在运行当中,-表示正在运行 pgrep显示指定进程的pid命令,ps和grep命令的结合 -u 显示指定用户的所有进程号
[[email?protected] ~]# pgrep sshd 1251 1419 [[email?protected] ~]# pgrep -u root 1 2 3 kill终止进程 ?kill [-s signal|-p] [-q sigval] [-a] [--] pid... -l 列出全部的信号名称 -p 指定kill命令只打印相关进程的进程号 -s 指定要发送的信号 [[email?protected] ~]# kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP [[email?protected] ~]# kill -l 9 KILL # HUP(1) 挂起,通常因终端掉线,或用户退出而引发 # INT2(2) 中断, # QUIT(3) 退出 # KILL(9) 立即结束进程的运行 # TERM(15) 终止,系统关机时发送 # TSTP 暂停进程的运行, [[email?protected] ~]# kill -9 进程号码 特殊信号“0” # kill有个特殊信号0,使用格式,kill -0 $pid 其中的-0表示不发送任何信号给$pid对应的进程, ? killall通过进程名终止进程,需要连续执行几次 -u 终止指定用户的进程 -w 等待所有被终止的进程死去,如果进程停留在僵死状态,那么killall可能会永久等待
pkill通过进程名终止指定的进程,可杀死指定进程及子进程 -t # 杀死指定终端的进程 -u # 杀死指定用户的进程
[[email?protected] ~]# w 13:59:12 up 3:54,1 user,load average: 0.08,0.03,0.05 USER TTY FROM [email?protected] IDLE JCPU PCPU WHAT root pts/0 10.0.0.1 10:04 8.00s 0.21s 0.05s w [[email?protected] ~]# pkill crond # 通过进程名 [[email?protected] ~]# systemctl status crond.service [[email?protected] ~]# pkill -t tty1 # 通过终端名 [[email?protected] ~]# pkill -u root # 通过用户名 top实时地对系统处理器状态进行监控,能够实时地显示系统中各个进程占用的状况 -a # 将进程按照使用内存排序 -b # 批处理的模式显示进程信息,输出结果可以传递给其他程序或写入到文件中,配合-n使用,一直打到-n设置的阈值 -c # 显示进程的整个命令路径,而不是只显示命令名称 -d # 指定每两次屏幕信息刷新之间的时间间隔 -H # 指定这个可以显示每个线程的情况,否则就是进程的总的状态 -i # 不显示闲置或者僵死的进程状态 -n # top输出信息更新的次数,完成后将推出top命令 -p # 显示指定的进程信息
交互式命令及说明 h 帮助 Z 全局颜色配置 B 全局字体加粗设置 l 显示平均负载和启动时间信息 t 显示进程和CPU状态信息 m 显示内存信息 1 数字1,用于多核CPU监控,可监控每个逻辑CPU的状况 。。。。。。。 可以自查了解 top -?14:27:26?up?4:22,?1?user,load average:?0.08,?0.03,?0.05 nohup用户退出系统进程继续工作。可以将程序以忽略挂起信号的方式运行起来,被运行程序的输出信息将不会显示到终端 输出信息写入到当前目录的nohup.out文件中,如果当前目录的nohup.out文件不可写,则输出重定向到$HOME/nohup.out strace跟踪进程的系统调用,是一款程序调试工具,主要检车一个应用程序所使用的系统调用以及他所接收的系统信息 -c 统计每一个系统调用所执行的时间,次数,和出错的次数 -d 输出关于标准错误的调试信息 -f 跟踪目标进程,以及目标进程创建的所有子进程 -i 输出系统调用的入口指针 -q 进制输出关于脱离的消息 -r 输出每一个系统调用的相对时间 -t 在输出的每一行前调用的相对时间 -T 显示每次系统调用所花费的时间 -v 对于某些相关调用,把完整的环境变量,文件stat结构等打印出来 -x 以16进制形式输出非标准字符串 -e 输出过滤器,通过表达式,可以过滤掉你不想要的输出 -o 将strace的输出写入文件filename -p pid 指定要跟踪的进程pid,要同时跟踪多个pid,重复多次-p选项即可 [[email?protected] ~]# strace -tt -f /etc/init.d/network [[email?protected] ~]# strace -c /etc/init.d/network Usage: /etc/init.d/network {start|stop|status|restart|reload|force-reload} % time seconds usecs/call calls errors syscall ------ ----------- ----------- --------- --------- ---------------- 44.53 0.000839 168 5 clone 27.44 0.000517 1 382 rt_sigprocmask 6.53 0.000123 5 26 read # 上面的结果告诉我们调用了哪些系统函数,调用的次数是多少,消耗了多少时间等信息,这对我们分析程序来说是非常有用的 ltraceltrace能够跟踪进程的库函数调用,它会显现出调用了那个库函数,而strace则是跟踪进程的每个系统调用 和strace参数公用 runlevel输出当前Linux系统的运行级别 0 停机 1 单用户模式 2 无网络的多用户模式 3 多用户模式 5 图形界面多用户模式 6 重启 ? init初始化Linux进程,是所有Linux进程的父进程,进程号为1,主要任务一句/etc/inittab创建linux进程
service[[email?protected] ~]# service --status-all # 显示所有服务状态 ? 管理系统服务,比如start|stop|status|reload等等 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |