Linux操作系统的进程管理和信号

                       作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

一.lsof命令详解

1>.lsof概述

list open files查看当前系统文件的工具。在linux环境下,一切皆文件,用户通过文件不仅可以访问常规数据,还可以访问网络连接和硬件如传输控制协议 (TCP) 和用户数据报协议 (UDP)套接字等,系统在后台都为该应用程序分配了一个文件描述符

2>.命令参数

-a:
  列出打开文件存在的进程
-c<进程名>:
  列出指定进程所打开的文件
-g:
  列出GID号进程详情
-d<文件号>:
  列出占用该文件号的进程
+d<目录>:
  列出目录下被打开的文件
+D<目录>:
  递归列出目录下被打开的文件
-n<目录>:
  列出使用NFS的文件
-i<条件>:
  列出符合条件的进程(、、协议、:端口、 @ip )
-p<进程号>:
  列出指定进程号所打开的文件
-u:
  列出UID号进程详情
-h:
  显示帮助信息
-v:
  显示版本信息。
-n:
  不反向解析网络名字

3>.进程管理

[root@node101.yinzhengjie.org.cn ~]# lsof /dev/pts/           #查看由登陆用户启动而非系统启动的进程
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
bash root 0u CHR , 0t0 /dev/pts/
bash root 1u CHR , 0t0 /dev/pts/
bash root 2u CHR , 0t0 /dev/pts/
bash root 255u CHR , 0t0 /dev/pts/
lsof root 0u CHR , 0t0 /dev/pts/
lsof root 1u CHR , 0t0 /dev/pts/
lsof root 2u CHR , 0t0 /dev/pts/
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]#

[root@node101.yinzhengjie.org.cn ~]# lsof /dev/pts/1    #查看由登陆用户启动而非系统启动的进程

[root@node101.yinzhengjie.org.cn ~]# ps
PID TTY TIME CMD
pts/ :: bash
pts/ :: mysqld_safe
pts/ :: ps
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# lsof -p #指定进程号,可以查看该进程打开的文件
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld_sa root cwd DIR , /home/softwares/mysql-5.7.-linux-glibc2.-x86_64
mysqld_sa root rtd DIR , /
mysqld_sa root txt REG , /usr/bin/bash
mysqld_sa root mem REG , /usr/lib/locale/locale-archive
mysqld_sa root mem REG , /usr/lib64/libc-2.17.so
mysqld_sa root mem REG , /usr/lib64/libdl-2.17.so
mysqld_sa root mem REG , /usr/lib64/libtinfo.so.5.9
mysqld_sa root mem REG , /usr/lib64/ld-2.17.so
mysqld_sa root mem REG , /usr/lib64/gconv/gconv-modules.cache
mysqld_sa root 0r CHR , 0t0 /dev/null
mysqld_sa root 1w CHR , 0t0 /dev/null
mysqld_sa root 2u CHR , 0t0 /dev/pts/
mysqld_sa root 255r REG , /home/softwares/mysql-5.7.-linux-glibc2.-x86_64/b
in/mysqld_safe[root@node101.yinzhengjie.org.cn ~]#

[root@node101.yinzhengjie.org.cn ~]# lsof -p 4985 #指定进程号,可以查看该进程打开的文件

4>.文件管理

-c:
查看指定用户打开的文件。 -d:
列出目录下被打开的文件 -D:
递归列出目录下被打开的文件。
[root@node101.yinzhengjie.org.cn ~]# ps
PID TTY TIME CMD
pts/ :: bash
pts/ :: mysqld_safe
pts/ :: ps
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# lsof -c mysqld_safe       #查看指定程序打开的文件
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld_sa root cwd DIR , /home/softwares/mysql-5.7.-linux-glibc2.-x86_64
mysqld_sa root rtd DIR , /
mysqld_sa root txt REG , /usr/bin/bash
mysqld_sa root mem REG , /usr/lib/locale/locale-archive
mysqld_sa root mem REG , /usr/lib64/libc-2.17.so
mysqld_sa root mem REG , /usr/lib64/libdl-2.17.so
mysqld_sa root mem REG , /usr/lib64/libtinfo.so.5.9
mysqld_sa root mem REG , /usr/lib64/ld-2.17.so
mysqld_sa root mem REG , /usr/lib64/gconv/gconv-modules.cache
mysqld_sa root 0r CHR , 0t0 /dev/null
mysqld_sa root 1w CHR , 0t0 /dev/null
mysqld_sa root 2u CHR , 0t0 /dev/pts/
mysqld_sa root 255r REG , /home/softwares/mysql-5.7.-linux-glibc2.-x86_64/b
in/mysqld_safe[root@node101.yinzhengjie.org.cn ~]#

[root@node101.yinzhengjie.org.cn ~]# lsof -c mysqld_safe       #查看指定程序打开的文件

[root@node101.yinzhengjie.org.cn ~]# lsof -u root | more               #查看指定用户打开的文件
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd root cwd DIR , /
systemd root rtd DIR , /
systemd root txt REG , /usr/lib/systemd/systemd
systemd root mem REG , /usr/lib64/libuuid.so.1.3.
systemd root mem REG , /usr/lib64/libblkid.so.1.1.
systemd root mem REG , /usr/lib64/libz.so.1.2.
systemd root mem REG , /usr/lib64/liblzma.so.5.2.
systemd root mem REG , /usr/lib64/libcap-ng.so.0.0.
systemd root mem REG , /usr/lib64/libattr.so.1.1.
systemd root mem REG , /usr/lib64/libdl-2.17.so
systemd root mem REG , /usr/lib64/libpcre.so.1.2.
systemd root mem REG , /usr/lib64/libc-2.17.so
systemd root mem REG , /usr/lib64/libpthread-2.17.so
systemd root mem REG , /usr/lib64/libgcc_s-4.8.-.so
.
systemd root mem REG , /usr/lib64/librt-2.17.so
systemd root mem REG , /usr/lib64/libmount.so.1.1.
systemd root mem REG , /usr/lib64/libkmod.so.2.2.
systemd root mem REG , /usr/lib64/libaudit.so.1.0.
systemd root mem REG , /usr/lib64/libpam.so.0.83.
systemd root mem REG , /usr/lib64/libcap.so.2.22
systemd root mem REG , /usr/lib64/libselinux.so.
systemd root mem REG , /usr/lib64/ld-2.17.so
systemd root 0u CHR , 0t0 /dev/null
......

[root@node101.yinzhengjie.org.cn ~]# lsof -u root | more       #查看指定用户打开的文件

[root@node101.yinzhengjie.org.cn ~]# lsof +D /var/log/         #查看指定目录下被打开的文件,递归列出目录下被打开的文件
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
auditd root 5w REG , /var/log/audit/audit.log
tuned root 3w REG , /var/log/tuned/tuned.log
rsyslogd root 6w REG , /var/log/messages
rsyslogd root 7w REG , /var/log/cron
rsyslogd root 8w REG , /var/log/secure
rsyslogd root 9w REG , /var/log/maillog
[root@node101.yinzhengjie.org.cn ~]#

[root@node101.yinzhengjie.org.cn ~]# lsof +D /var/log/         #查看指定目录下被打开的文件,递归列出目录下被打开的文件

[root@node101.yinzhengjie.org.cn ~]# lsof +d /var/log/           #查看指定目录下被打开的文件,列出目录下被打开的文件但不递归。
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
rsyslogd root 6w REG , /var/log/messages
rsyslogd root 7w REG , /var/log/cron
rsyslogd root 8w REG , /var/log/secure
rsyslogd root 9w REG , /var/log/maillog
[root@node101.yinzhengjie.org.cn ~]#

[root@node101.yinzhengjie.org.cn ~]# lsof +d /var/log/         #查看指定目录下被打开的文件,列出目录下被打开的文件但不递归。

5>.网络管理

-i:
通过参数-i查看网络连接的情况,包括连接的ip、端口,协议等以及一些服务的连接情况,例如:sshd等。也可以通过指定ip查看该ip的网络连接情况 -a:
查看存在的进程。 -p:
指定进程 -n:
no host names, -P:
no port names, -s:
指定协议状态通过多个参数可以清晰的查看网络连接情况、协议连接情况等
[root@node101.yinzhengjie.org.cn ~]# lsof -i -n             #查看所有网络连接,通过参数-i查看网络连接的情况,包括连接的ip、端口等以及一些服务的连接情况,例如:sshd等。
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
dhclient root 6u IPv4 0t0 UDP *:bootpc
sshd root 3u IPv4 0t0 TCP *:ssh (LISTEN)
sshd root 4u IPv6 0t0 TCP *:ssh (LISTEN)
sshd root 3u IPv4 0t0 TCP 172.30.1.101:ssh->172.30.1.254: (ESTABLISHED)
sshd root 3u IPv4 0t0 TCP 172.30.1.101:ssh->172.30.1.254: (ESTABLISHED)
sshd root 3u IPv4 0t0 TCP 172.30.1.101:ssh->172.30.1.254: (ESTABLISHED)
mysqld mysql 32u IPv6 0t0 TCP *:mysql (LISTEN)
[root@node101.yinzhengjie.org.cn ~]#

[root@node101.yinzhengjie.org.cn ~]# lsof -i -n             #查看所有网络连接,通过参数-i查看网络连接的情况,包括连接的ip、端口等以及一些服务的连接情况,例如:sshd等。

[root@node101.yinzhengjie.org.cn ~]# lsof -i -n
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
dhclient root 6u IPv4 0t0 UDP *:bootpc
sshd root 3u IPv4 0t0 TCP *:ssh (LISTEN)
sshd root 4u IPv6 0t0 TCP *:ssh (LISTEN)
sshd root 3u IPv4 0t0 TCP 172.30.1.101:ssh->172.30.1.254: (ESTABLISHED)
sshd root 3u IPv4 0t0 TCP 172.30.1.101:ssh->172.30.1.254: (ESTABLISHED)
sshd root 3u IPv4 0t0 TCP 172.30.1.101:ssh->172.30.1.254: (ESTABLISHED)
mysqld mysql 32u IPv6 0t0 TCP *:mysql (LISTEN)
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# lsof -i@127.0.0.1
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# lsof -i@172.30.1.101 #通过参数-i查看网络连接的情况,也可以通过指定ip查看该ip的网络连接情况
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd root 3u IPv4 0t0 TCP node101.yinzhengjie.org.cn:ssh->gateway: (ESTABLISHED)
sshd root 3u IPv4 0t0 TCP node101.yinzhengjie.org.cn:ssh->gateway: (ESTABLISHED)
sshd root 3u IPv4 0t0 TCP node101.yinzhengjie.org.cn:ssh->gateway: (ESTABLISHED)
[root@node101.yinzhengjie.org.cn ~]#

[root@node101.yinzhengjie.org.cn ~]# lsof -i@172.30.1.101       #通过参数-i查看网络连接的情况,也可以通过指定ip查看该ip的网络连接情况

[root@node101.yinzhengjie.org.cn ~]# lsof -i: -n                #查看端口连接情况,通过参数-i:端口可以查看端口的占用情况,-i参数还有查看协议,ip的连接情况等
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd root 3u IPv4 0t0 TCP *:ssh (LISTEN)
sshd root 4u IPv6 0t0 TCP *:ssh (LISTEN)
sshd root 3u IPv4 0t0 TCP 172.30.1.101:ssh->172.30.1.254: (ESTABLISHED)
sshd root 3u IPv4 0t0 TCP 172.30.1.101:ssh->172.30.1.254: (ESTABLISHED)
sshd root 3u IPv4 0t0 TCP 172.30.1.101:ssh->172.30.1.254: (ESTABLISHED)
[root@node101.yinzhengjie.org.cn ~]#

[root@node101.yinzhengjie.org.cn ~]# lsof -i:22 -n           #查看端口连接情况,通过参数-i:端口可以查看端口的占用情况,-i参数还有查看协议,ip的连接情况等

[root@node101.yinzhengjie.org.cn ~]# ps -ef | grep sshd
root : ? :: /usr/sbin/sshd -D
root : ? :: sshd: root@pts/
root : ? :: sshd: root@pts/
root : ? :: sshd: root@pts/
root : pts/ :: grep --color=auto sshd
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# lsof -i -n -a -p #查看指定进程打开的网络连接,参数-i、-a、-p等,-i查看网络连接情况,-a查看存在的进程,-p指定进程
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd root 3u IPv4 0t0 TCP 172.30.1.101:ssh->172.30.1.254: (ESTABLISHED)
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]#

[root@node101.yinzhengjie.org.cn ~]# lsof -i -n -a -p 3901       #查看指定进程打开的网络连接,参数-i、-a、-p等,-i查看网络连接情况,-a查看存在的进程,-p指定进程

[root@node101.yinzhengjie.org.cn ~]# lsof -n -P -i TCP -s TCP:ESTABLISHED      #查看指定状态的网络连接
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd root 3u IPv4 0t0 TCP 172.30.1.101:->172.30.1.254: (ESTABLISHED)
sshd root 3u IPv4 0t0 TCP 172.30.1.101:->172.30.1.254: (ESTABLISHED)
sshd root 3u IPv4 0t0 TCP 172.30.1.101:->172.30.1.254: (ESTABLISHED)
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]#

[root@node101.yinzhengjie.org.cn ~]# lsof -n -P -i TCP -s TCP:ESTABLISHED   #查看指定状态的网络连接

6>.恢复删除文件

[root@node101.yinzhengjie.org.cn ~]# lsof |grep /var/log/messages
rsyslogd root 6w REG , /var/log/messages
in:imjour root 6w REG , /var/log/messages
rs:main root 6w REG , /var/log/messages
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# rm -f /var/log/messages
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# lsof |grep /var/log/messages
rsyslogd root 6w REG , /var/log/messages (deleted)
in:imjour root 6w REG , /var/log/messages (deleted)
rs:main root 6w REG , /var/log/messages (deleted)
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# ll /proc//fd/
l-wx------ root root Nov : /proc//fd/ -> /var/log/messages (deleted)
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# cat /proc//fd/ > /var/log/messages
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# ll /var/log/messages
-rw-r--r-- root root Nov : /var/log/messages
[root@node101.yinzhengjie.org.cn ~]#

二.进程管理工具-kill命令

1>.kill命令概述

  向进程发送控制信号,以实现对进程管理,每个信号对应一个数字,信号名称以SIG开头(可省略),不区分大小写。

2>.kill常用信号

[root@node101.yinzhengjie.org.cn ~]# kill -l                       #显示当前系统可用信号
) SIGHUP ) SIGINT ) SIGQUIT ) SIGILL ) SIGTRAP
) SIGABRT ) SIGBUS ) SIGFPE ) SIGKILL ) SIGUSR1
) SIGSEGV ) SIGUSR2 ) SIGPIPE ) SIGALRM ) SIGTERM
) SIGSTKFLT ) SIGCHLD ) SIGCONT ) SIGSTOP ) SIGTSTP
) SIGTTIN ) SIGTTOU ) SIGURG ) SIGXCPU ) SIGXFSZ
) SIGVTALRM ) SIGPROF ) SIGWINCH ) SIGIO ) SIGPWR
) SIGSYS ) SIGRTMIN ) SIGRTMIN+ ) SIGRTMIN+ ) SIGRTMIN+
) SIGRTMIN+ ) SIGRTMIN+ ) SIGRTMIN+ ) SIGRTMIN+ ) SIGRTMIN+
) SIGRTMIN+ ) SIGRTMIN+ ) SIGRTMIN+ ) SIGRTMIN+ ) SIGRTMIN+
) SIGRTMIN+ ) SIGRTMIN+ ) SIGRTMAX- ) SIGRTMAX- ) SIGRTMAX-
) SIGRTMAX- ) SIGRTMAX- ) SIGRTMAX- ) SIGRTMAX- ) SIGRTMAX-
) SIGRTMAX- ) SIGRTMAX- ) SIGRTMAX- ) SIGRTMAX- ) SIGRTMAX-
) SIGRTMAX- ) SIGRTMAX
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# trap -l
) SIGHUP ) SIGINT ) SIGQUIT ) SIGILL ) SIGTRAP
) SIGABRT ) SIGBUS ) SIGFPE ) SIGKILL ) SIGUSR1
) SIGSEGV ) SIGUSR2 ) SIGPIPE ) SIGALRM ) SIGTERM
) SIGSTKFLT ) SIGCHLD ) SIGCONT ) SIGSTOP ) SIGTSTP
) SIGTTIN ) SIGTTOU ) SIGURG ) SIGXCPU ) SIGXFSZ
) SIGVTALRM ) SIGPROF ) SIGWINCH ) SIGIO ) SIGPWR
) SIGSYS ) SIGRTMIN ) SIGRTMIN+ ) SIGRTMIN+ ) SIGRTMIN+
) SIGRTMIN+ ) SIGRTMIN+ ) SIGRTMIN+ ) SIGRTMIN+ ) SIGRTMIN+
) SIGRTMIN+ ) SIGRTMIN+ ) SIGRTMIN+ ) SIGRTMIN+ ) SIGRTMIN+
) SIGRTMIN+ ) SIGRTMIN+ ) SIGRTMAX- ) SIGRTMAX- ) SIGRTMAX-
) SIGRTMAX- ) SIGRTMAX- ) SIGRTMAX- ) SIGRTMAX- ) SIGRTMAX-
) SIGRTMAX- ) SIGRTMAX- ) SIGRTMAX- ) SIGRTMAX- ) SIGRTMAX-
) SIGRTMAX- ) SIGRTMAX
[root@node101.yinzhengjie.org.cn ~]#

[root@node101.yinzhengjie.org.cn ~]# kill -l       #显示当前系统可用信号

) SIGHUP
无须关闭进程而让其重读配置文件
) SIGINT
中止正在运行的进程;相当于Ctrl+c
) SIGQUIT
相当于ctrl+\
) SIGKILL
强制杀死正在运行的进程
) SIGTERM
终止正在运行的进程
) SIGCONT
继续运行
) SIGSTOP
后台休眠
指定信号的方法 :
() 信号的数字标识,如:, ,
() 信号完整名称,如:SIGHUP
() 信号的简写名称,如:HUP

3>.按PID 

[root@node101.yinzhengjie.org.cn ~]# pstree -p | grep ssh
|-sshd()-+-sshd()---bash()
| |-sshd()---bash()-+-grep()
| `-sshd()---bash()
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# kill - #无须关闭进程而让其重读配置文件
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# pstree -p | grep ssh
|-sshd()-+-sshd()---bash()
| |-sshd()---bash()-+-grep()
| `-sshd()---bash()
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]#

[root@node101.yinzhengjie.org.cn ~]# kill -1 3397       #无须关闭进程而让其重读配置文件

[root@node101.yinzhengjie.org.cn ~]# ps -a
PID TTY TIME CMD
pts/ :: mysqld_safe
pts/ :: mysqld
pts/ :: bc
pts/ :: ps
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# pidof bc [root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# kill `pidof bc` #中止正在运行的进程;相当于Ctrl+c
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# ps -a
PID TTY TIME CMD
pts/ :: mysqld_safe
pts/ :: mysqld
pts/ :: ps
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]#

[root@node101.yinzhengjie.org.cn ~]# kill 2 `pidof bc`     #中止正在运行的进程;相当于Ctrl+c

[root@node101.yinzhengjie.org.cn ~]# pidof bc

[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# kill `pidof bc` #让程序退出"QUIT",相当于"ctrl+\"
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# pidof bc
[root@node101.yinzhengjie.org.cn ~]#

[root@node101.yinzhengjie.org.cn ~]# kill 3 `pidof bc`     #让程序退出"QUIT",相当于"ctrl+\"

[root@node101.yinzhengjie.org.cn ~]# pidof bc

[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# kill `pidof bc` #相当于15信号,终止正在运行的进程
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# pidof bc
[root@node101.yinzhengjie.org.cn ~]#

[root@node101.yinzhengjie.org.cn ~]# kill `pidof bc`       #相当于15信号,终止正在运行的进程

[root@node101.yinzhengjie.org.cn ~]# ps
PID TTY TIME CMD
pts/ :: bash
pts/ :: ps
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# kill - #强制杀死正在运行的进程 Connection closed by foreign host. Disconnected from remote host(node101.yinzhengjie.org.cn) at ::. Type `help' to learn how to use Xshell prompt.
[c:\~]$

[root@node101.yinzhengjie.org.cn ~]# kill -9 3630         #强制杀死正在运行的进程

[root@node101.yinzhengjie.org.cn ~]# kill -          #让进程进行错误检查
[root@node101.yinzhengjie.org.cn ~]# echo $? [root@node101.yinzhengjie.org.cn ~]#

[root@node101.yinzhengjie.org.cn ~]# kill -0 1           #让进程进行错误检查

4>.按名称杀死进程

[root@node101.yinzhengjie.org.cn ~]# ss -ntl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN *: *:*
LISTEN *: *:*
LISTEN ::: :::*
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# killall httpd
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# ss -ntl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN *: *:*
LISTEN ::: :::*
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]#

[root@node101.yinzhengjie.org.cn ~]# killall httpd

5>.按模式杀死进程

pkill [options] pattern
-SIGNAL
-u uid: effective user,生效者
-U uid: real user,真正发起运行命令者
-t terminal: 与指定终端相关的进程
-l: 显示进程名(pgrep可用)
-a: 显示完整格式的进程名(pgrep可用)
-P pid: 显示指定进程的子进程
[root@node101.yinzhengjie.org.cn ~]# pkill -u yinzhengjie        #杀掉指定用户所启用的进程
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# pkill - -u yinzhengjie      #杀掉指定用户的所启用的进程包括bash。
[root@node101.yinzhengjie.org.cn ~]#

三.作业管理

1>.Linux的作业控制

前台作业:
通过终端启动,且启动后一直占据终端 后台作业:
可通过终端启动,但启动后即转入后台运行(释放终端)

2>.让作业运行于后台

运行中的作业: 
  Ctrl+z
尚未启动的作业:
  COMMAND &
[root@node101.yinzhengjie.org.cn ~]# ping 127.0.0.1
PING 127.0.0.1 (127.0.0.1) () bytes of data.
bytes from 127.0.0.1: icmp_seq= ttl= time=0.009 ms
bytes from 127.0.0.1: icmp_seq= ttl= time=0.016 ms
bytes from 127.0.0.1: icmp_seq= ttl= time=0.017 ms
bytes from 127.0.0.1: icmp_seq= ttl= time=0.016 ms
bytes from 127.0.0.1: icmp_seq= ttl= time=0.016 ms
bytes from 127.0.0.1: icmp_seq= ttl= time=0.016 ms
bytes from 127.0.0.1: icmp_seq= ttl= time=0.016 ms
bytes from 127.0.0.1: icmp_seq= ttl= time=0.018 ms
^Z
[]+ Stopped ping 127.0.0.1 #使用"ctrl +z"可以让进程停止
[root@node101.yinzhengjie.org.cn ~]#

[1]+ Stopped ping 127.0.0.1         #使用"ctrl +z"可以让进程停止

[root@node101.yinzhengjie.org.cn ~]# ping www.baidu.com &
[]
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# PING www.a.shifen.com (61.135.169.121) () bytes of data.
[root@node101.yinzhengjie.org.cn ~]#
bytes from 61.135.169.121 (61.135.169.121): icmp_seq= ttl= time=7.29 ms
bytes from 61.135.169.121 (61.135.169.121): icmp_seq= ttl= time=10.0 ms
bytes from 61.135.169.121 (61.135.169.121): icmp_seq= ttl= time=10.0 ms
bytes from 61.135.169.121 (61.135.169.121): icmp_seq= ttl= time=5.91 ms
bytes from 61.135.169.121 (61.135.169.121): icmp_seq= ttl= time=7.96 ms
bytes from 61.135.169.121 (61.135.169.121): icmp_seq= ttl= time=38.4 ms
bytes from 61.135.169.121 (61.135.169.121): icmp_seq= ttl= time=19.5 ms
bytes from 61.135.169.121 (61.135.169.121): icmp_seq= ttl= time=6.74 ms
bytes from 61.135.169.121 (61.135.169.121): icmp_seq= ttl= time=7.12 ms
bytes from 61.135.169.121 (61.135.169.121): icmp_seq= ttl= time=16.8 ms
bytes from 61.135.169.121 (61.135.169.121): icmp_seq= ttl= time=24.9 ms
bytes from 61.135.169.121 (61.135.169.121): icmp_seq= ttl= time=79.2 ms

[root@node101.yinzhengjie.org.cn ~]# ping www.baidu.com &

3>.后台作业虽然被送往后台运行,但其依然与终端相关;退出终端,将关闭后台作业。如果希望送往后台后,剥离与终端的关系

nohup COMMAND &>/dev/null &
screen;COMMAND
[root@node101.yinzhengjie.org.cn ~]# yum -y install screen
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* epel: mirrors.tuna.tsinghua.edu.cn
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
Resolving Dependencies
--> Running transaction check
---> Package screen.x86_64 :4.1.-0.25.20120314git3c2946.el7 will be installed
--> Finished Dependency Resolution Dependencies Resolved =======================================================================================================================================
Package Arch Version Repository Size
=======================================================================================================================================
Installing:
screen x86_64 4.1.-0.25.20120314git3c2946.el7 base k Transaction Summary
=======================================================================================================================================
Install Package Total download size: k
Installed size: k
Downloading packages:
screen-4.1.-0.25.20120314git3c2946.el7.x86_64.rpm | kB ::
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : screen-4.1.-0.25.20120314git3c2946.el7.x86_64 /
Verifying : screen-4.1.-0.25.20120314git3c2946.el7.x86_64 / Installed:
screen.x86_64 :4.1.-0.25.20120314git3c2946.el7 Complete!
[root@node101.yinzhengjie.org.cn ~]#

[root@node101.yinzhengjie.org.cn ~]# yum -y install screen    #使用screen的bash执行命令会自动放在后台作业。

[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# nohup ping www.baidu.com &> /dev/null &
[]
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# jobs
[]+ Running nohup ping www.baidu.com &>/dev/null &
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# ll
total
[root@node101.yinzhengjie.org.cn ~]#

[root@node101.yinzhengjie.org.cn ~]# nohup ping www.baidu.com &> /dev/null &  #或者使用nohup命令配合"&"可以剥离终端的执行。

4>.查看当前终端所有作业

[root@node101.yinzhengjie.org.cn ~]# jobs
[]+ Stopped ping 127.0.0.1
[root@node101.yinzhengjie.org.cn ~]#

5>.作业控制

fg [[%]JOB_NUM]:
把指定的后台作业调回前台 bg [[%]JOB_NUM]:
让送往后台的作业在后台继续运行 kill [%JOB_NUM]:
终止指定的作业
[root@node101.yinzhengjie.org.cn ~]# jobs
[]+ Stopped ping 127.0.0.1
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# bg #让送往后台的作业在后台继续运行
[]+ ping 127.0.0.1 &
[root@node101.yinzhengjie.org.cn ~]# bytes from 127.0.0.1: icmp_seq= ttl= time=0.013 ms
bytes from 127.0.0.1: icmp_seq= ttl= time=0.016 ms
bytes from 127.0.0.1: icmp_seq= ttl= time=0.025 ms
bytes from 127.0.0.1: icmp_seq= ttl= time=0.016 ms
bytes from 127.0.0.1: icmp_seq= ttl= time=0.016 ms

[root@node101.yinzhengjie.org.cn ~]# bg 1           #让送往后台的作业在后台继续运行

[root@node101.yinzhengjie.org.cn ~]# ping 127.0.0.1
PING 127.0.0.1 (127.0.0.1) () bytes of data.
bytes from 127.0.0.1: icmp_seq= ttl= time=0.022 ms
bytes from 127.0.0.1: icmp_seq= ttl= time=0.016 ms
^Z
[]+ Stopped ping 127.0.0.1
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# jobs
[]+ Stopped ping 127.0.0.1
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# fg #把指定的后台作业调回前台
ping 127.0.0.1
bytes from 127.0.0.1: icmp_seq= ttl= time=0.014 ms
bytes from 127.0.0.1: icmp_seq= ttl= time=0.017 ms
bytes from 127.0.0.1: icmp_seq= ttl= time=0.018 ms
bytes from 127.0.0.1: icmp_seq= ttl= time=0.019 ms
bytes from 127.0.0.1: icmp_seq= ttl= time=0.018 ms
bytes from 127.0.0.1: icmp_seq= ttl= time=0.015 ms
bytes from 127.0.0.1: icmp_seq= ttl= time=0.017 ms
bytes from 127.0.0.1: icmp_seq= ttl= time=0.015 ms
bytes from 127.0.0.1: icmp_seq= ttl= time=0.021 ms
^C
--- 127.0.0.1 ping statistics ---
packets transmitted, received, % packet loss, time 17359ms
rtt min/avg/max/mdev = 0.014/0.017/0.022/0.004 ms
[root@node101.yinzhengjie.org.cn ~]#

[root@node101.yinzhengjie.org.cn ~]# fg 1           #把指定的后台作业调回前台

[root@node101.yinzhengjie.org.cn ~]# jobs
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# ping 127.0.0.1
PING 127.0.0.1 (127.0.0.1) () bytes of data.
bytes from 127.0.0.1: icmp_seq= ttl= time=0.010 ms
bytes from 127.0.0.1: icmp_seq= ttl= time=0.023 ms
^Z
[]+ Stopped ping 127.0.0.1
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# jobs
[]+ Stopped ping 127.0.0.1
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# killall - ping #给进程发送运行的信号,如果发送"-19"就让进程停止执行
bytes from 127.0.0.1: icmp_seq= ttl= time=0.017 ms
[root@node101.yinzhengjie.org.cn ~]# bytes from 127.0.0.1: icmp_seq= ttl= time=0.026 ms
bytes from 127.0.0.1: icmp_seq= ttl= time=0.040 ms
bytes from 127.0.0.1: icmp_seq= ttl= time=0.017 ms
bytes from 127.0.0.1: icmp_seq= ttl= time=0.018 ms
bytes from 127.0.0.1: icmp_seq= ttl= time=0.040 ms
bytes from 127.0.0.1: icmp_seq= ttl= time=0.016 ms
bytes from 127.0.0.1: icmp_seq= ttl= time=0.032 ms

[root@node101.yinzhengjie.org.cn ~]# killall -18 ping     #给进程发送运行的信号,如果发送"-19"就让进程停止执行

四.并行运行

同时运行多个进程,提高效率
方法1:编写脚本文件,在脚本中调用依次调用脚本并在后台执行。
    vi all.sh
    f1.sh&
    f2.sh&
    f3.sh&
方法2:
    (f1.sh&);(f2.sh&);(f3.sh&)

方法3:
    { f1.sh& f2.sh& f3.sh& }
[root@node101.yinzhengjie.org.cn ~]# { { ping -c  127.1;ping -c  127.2; }& { ping -c  127.3;ping -c  127.4; }& };
[]
[]
[root@node101.yinzhengjie.org.cn ~]# PING 127.3 (127.0.0.3) () bytes of data.
bytes from 127.0.0.3: icmp_seq= ttl= time=0.011 ms
PING 127.1 (127.0.0.1) () bytes of data.
bytes from 127.0.0.1: icmp_seq= ttl= time=0.026 ms
bytes from 127.0.0.1: icmp_seq= ttl= time=0.045 ms
bytes from 127.0.0.3: icmp_seq= ttl= time=0.092 ms
bytes from 127.0.0.1: icmp_seq= ttl= time=0.015 ms
bytes from 127.0.0.3: icmp_seq= ttl= time=0.016 ms --- 127.1 ping statistics ---
--- 127.3 ping statistics ---
packets transmitted, received, % packet loss, time 2000ms
packets transmitted, received, % packet loss, time 2000ms
rtt min/avg/max/mdev = 0.011/0.039/0.092/0.037 ms
rtt min/avg/max/mdev = 0.015/0.028/0.045/0.013 ms
PING 127.4 (127.0.0.4) () bytes of data.
PING 127.2 (127.0.0.2) () bytes of data.
bytes from 127.0.0.2: icmp_seq= ttl= time=0.011 ms
bytes from 127.0.0.4: icmp_seq= ttl= time=0.011 ms
bytes from 127.0.0.2: icmp_seq= ttl= time=0.017 ms
bytes from 127.0.0.4: icmp_seq= ttl= time=0.031 ms
bytes from 127.0.0.4: icmp_seq= ttl= time=0.016 ms
bytes from 127.0.0.2: icmp_seq= ttl= time=0.016 ms --- 127.4 ping statistics ---
--- 127.2 ping statistics ---
packets transmitted, received, % packet loss, time 2000ms
packets transmitted, received, % packet loss, time 2000ms
rtt min/avg/max/mdev = 0.011/0.019/0.031/0.009 ms
rtt min/avg/max/mdev = 0.011/0.014/0.017/0.005 ms [] Done { ping -c 127.1; ping -c 127.2; }
[] Done { ping -c 127.3; ping -c 127.4; }
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]#

[root@node101.yinzhengjie.org.cn ~]# { { ping -c 3 127.1;ping -c 3 127.2; }& { ping -c 3 127.3;ping -c 3 127.4; }& };

Linux操作系统的进程管理和作业管理的更多相关文章

  1. Linux操作系统的进程管理

    Linux操作系统的进程管理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.进程相关概念 1>.进程概述 内核的功用: 进程管理.文件系统.网络功能.内存管理.驱动程序. ...

  2. Linux操作系统的日志管理之rsyslog实战案例

    Linux操作系统的日志管理之rsyslog实战案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.日志介绍 1>.什么是日志 历史事件: 时间,地点,人物,事件 日志级 ...

  3. .Neter玩转Linux系列之五:crontab使用详解和Linux的进程管理以及网络状态监控

    一.crontab使用详解 概述:任务调度:是指系统在某个时间执行的特定的命令或程序. 任务调度分类: (1)系统工作:有些重要的工作必须周而 复始地执行. (2)个别用户工作:个别用户可能希望执 行 ...

  4. Linux:进程管理

    Linux:进程管理 进程间通信 文件和记录锁定. 为避免两个进程间同时要求访问同一共享资源而引起访问和操作的混乱,在进程对共享资源进行访问前必须对其进行锁定,该进程访问完后再释放.这是UNIX为共享 ...

  5. linux 系统管理--进程管理

    目录 linux 系统管理--进程管理 一.进程基本概述 二.监控进程状态 三.进程的优先级[进阶] 四.企业案例,Linux假死是怎么回事 五.后台进程管理 六.系统平均负载[进阶] linux 系 ...

  6. Linux内核——进程管理与调度

    进程的管理与调度 进程管理 进程描写叙述符及任务结构 进程存放在叫做任务队列(tasklist)的双向循环链表中.链表中的每一项包括一个详细进程的全部信息,类型为task_struct,称为进程描写叙 ...

  7. linux系统管理--进程管理

    这两天一直维护公司的服务器,主要对进程管理和linux工作管理,把一些零散的知识整理一下,书归正传~ 什么进程?  以下是百度给的解释的进程,说实话,云里雾里的,其实linux进程和windows进程 ...

  8. 【linux之进程管理,系统监控】

    一.进程管理 前台进程:一般是指占据着标准输入和/或标准输出的进程后台进程:不占据默认开启的进程都是前台进程ctrl+C 中断ctrl+z 从前台转入后台bg 后台进程编号 让其在后台运行ls -R ...

  9. [Linux]系统管理: 进程管理(ps/top/pstree/kill/pkill), 工作管理, 系统资源查看, 系统定时任务

    进程管理:查看与终止 进程查看 1. 进程是正在执行的程序或命令. 2. 进程管理的作用: 判断服务器健康状态, 查看系统中所有进程 杀死进程 3. 查看系统中所有进程 ps aux    # 查看系 ...

随机推荐

  1. 转 mysql distinct函数 与 免密码登录 与 查看表的结构

    #########sample 1 mysql中去重 distinct 用法   在使用MySQL时,有时需要查询出某个字段不重复的记录,这时可以使用mysql提供的distinct这个关键字来过滤重 ...

  2. Playbooks简介

    Playbooks简介 关于Playbooks Playbook简单示例 基本组成 主机和用户 任务列表 Handlers: 配置更改时运行操作 执行Playbook Ansible-Pull Lin ...

  3. 工控随笔_23_WinCC报Application CCArchiveConnMon.exe could not establish a connection to the Win CC license server

    西门子的软件都是比较庞大的,安装一个软件要很长时间,而且安装的过程中很容易因为系统兼容性问题导致不能成功安装的情况, 而有时还会出现安装成功,但是不能正常使用的情况.这个时候就很麻烦,一般除了重装系统 ...

  4. 批量删除sql语句

    SET @I = 148;SELECT CONCAT("DELETE FROM supplier_change_log WHERE old_supplier_id=4194 AND id&g ...

  5. 使用HOSTNAMECTL配置主机名

    hostnamectl工具是用来管理给定主机中. 查看所有主机名 请运行下面的命令查看所有当前主机名: 〜] $ hostnamectl status 如果未指定任何选项,默认则使用status选项对 ...

  6. 执行sudo supervisorctl reload报错ImportError: No module named supervisor.supervisord

    由于yum install supervisor 会默认使用python2.6环境,首先要安装好python2.6的环境,然后修改以下文件首行为2.6即可 [root@VM_0_15_centos ~ ...

  7. Java程序员经典面试题+答案(全)

    这套面试题主要目的是帮助那些还没有java软件开发实际工作经验,而正在努力寻找java软件开发工作的朋友在笔试时更好地赢得笔试和面试. 关注公众号[Java典籍]免费赠送一套Java入门视频教程一套! ...

  8. mac下php配置

    打开/关闭服务 sudo apachectl start sudo apachectl stop 查看apche版本 apacectl -v 修改项目默认路径: 打开配置文件目录/private/et ...

  9. 测试代码的练习2——python编程从入门到实践

    11-3 雇员:编写一个名为Employee的类,其方法__init__() 接受名.姓和年薪,并将它们都存储在属性中.编写一个名为give_raise()的方法,它默认将年薪增加5000美元,但也能 ...

  10. LeetCode 5214. 最长定差子序列(Java)HashMap

    题目: 5214. 最长定差子序列 给你一个整数数组 arr 和一个整数 difference,请你找出 arr 中所有相邻元素之间的差等于给定 difference 的等差子序列,并返回其中最长的等 ...