centos 7 进程管理

centos7 使用 systemd 管理进行,systemd 是父进程。

查看进程的命令

  • ps
  • pstree
  • top

##ps

[root@localhost yum.repos.d]# ps
   PID TTY          TIME CMD
 13463 pts/1    00:00:00 su
 13469 pts/1    00:00:00 bash
 13729 pts/1    00:00:00 ps

使用

[root@localhost yum.repos.d]# ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.3 128092  6772 ?        Ss   09:22   0:06 /usr/lib/systemd/systemd --switched-root --system
root          2  0.0  0.0      0     0 ?        S    09:22   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    09:22   0:00 [ksoftirqd/0]
root          7  0.0  0.0      0     0 ?        S    09:22   0:00 [migration/0]
root          8  0.0  0.0      0     0 ?        S    09:22   0:00 [rcu_bh]
root          9  0.0  0.0      0     0 ?        R    09:22   0:00 [rcu_sched]
root         10  0.0  0.0      0     0 ?        S    09:22   0:00 [watchdog/0]
root         11  0.0  0.0      0     0 ?        S    09:22   0:00 [watchdog/1]
root         12  0.0  0.0      0     0 ?        S    09:22   0:00 [migration/1]
  • USER 运行进程的用户
  • PID 进程号
  • %CPU cpu 使用率
  • %MEM 内存使用率
  • VSZ 虚拟内存使用率
  • RSS 固定使用的内存
  • TTY 终端信息,该 process 是在那个终端机上面运作,若与终端机无关,则显示 ?,另外, tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序。
  • STAT 进程状态
  • START 进程开始时间
  • TIME 使用掉的 CPU 时间
  • COMMAND 指向的程序路径

进程状态

运行 -R 正在运行或运行队列中等待
中断 -S 休眠中,受阻,在等等某个条件的形成或接受到信息
不可中断 -D
僵死 -Z
停止 -T

进程优先级

< 优先级较高的进程
N 优先级较低的进程
L 有些页被锁住内存
l 多进程的
s 进程的领导者,在它之下有子进程

  • 位于后台的进程组

##pstree命令

以进程树的方式查看 可以看到 systemd 是父进程,所有进程都位于其之下。

[root@localhost yum.repos.d]# pstree
systemd─┬─ModemManager───2*[{ModemManager}]
        ├─NetworkManager───2*[{NetworkManager}]
        ├─2*[abrt-watch-log]
        ├─abrtd
        ├─accounts-daemon───2*[{accounts-daemon}]
        ├─alsactl
        ├─at-spi-bus-laun─┬─dbus-daemon───{dbus-daemon}
        │                 └─3*[{at-spi-bus-laun}]
        ├─at-spi2-registr───2*[{at-spi2-registr}]
        ├─atd
        ├─auditd─┬─audispd─┬─sedispatch
        │        │         └─{audispd}
        │        └─{auditd}
        ├─avahi-daemon───avahi-daemon
        ├─bluetoothd
        ├─caribou───2*[{caribou}]
        ├─chronyd
        ├─colord───2*[{colord}]
        ├─crond
        ├─cupsd
        ├─2*[dbus-daemon───{dbus-daemon}]
        ├─dbus-launch
        ├─dnsmasq───dnsmasq
        ├─evolution-calen───5*[{evolution-calen}]
        ├─evolution-sourc───2*[{evolution-sourc}]
        ├─gdm─┬─Xorg───2*[{Xorg}]
        │     ├─gdm-session-wor─┬─gnome-session─┬─abrt-applet───2*[{abrt-applet}]
        │     │                 │               ├─gnome-settings-───4*[{gnome-settings-}]
        │     │                 │               ├─gnome-shell─┬─ibus-daemon─┬─ibus-dconf───3*[{ibus-dconf}]
        │     │                 │               │             │             ├─ibus-engine-sim───2*[{ibus-engine-si+
        │     │                 │               │             │             └─2*[{ibus-daemon}]
        │     │                 │               │             └─10*[{gnome-shell}]
        │     │                 │               ├─gnome-software───3*[{gnome-software}]
        │     │                 │               ├─nautilus───3*[{nautilus}]
        │     │                 │               ├─seapplet
        │     │                 │               ├─ssh-agent
        │     │                 │               ├─tracker-extract───13*[{tracker-extract}]
        │     │                 │               ├─tracker-miner-a───2*[{tracker-miner-a}]
        │     │                 │               ├─tracker-miner-f───3*[{tracker-miner-f}]
        │     │                 │               ├─tracker-miner-u───2*[{tracker-miner-u}]
        │     │                 │               └─3*[{gnome-session}]
        │     │                 └─2*[{gdm-session-wor}]
        │     └─3*[{gdm}]
        ├─gnome-keyring-d───4*[{gnome-keyring-d}]
        ├─gnome-shell-cal───5*[{gnome-shell-cal}]
        ├─goa-daemon───3*[{goa-daemon}]
        ├─goa-identity-se───3*[{goa-identity-se}]
        ├─gsd-printer───2*[{gsd-printer}]
        ├─gssproxy───5*[{gssproxy}]
        ├─gvfs-afc-volume───3*[{gvfs-afc-volume}]
        ├─gvfs-goa-volume───2*[{gvfs-goa-volume}]
        ├─gvfs-gphoto2-vo───2*[{gvfs-gphoto2-vo}]
        ├─gvfs-mtp-volume───2*[{gvfs-mtp-volume}]
        ├─gvfs-udisks2-vo───2*[{gvfs-udisks2-vo}]
        ├─gvfsd───2*[{gvfsd}]
        ├─gvfsd-fuse───5*[{gvfsd-fuse}]
        ├─gvfsd-trash───2*[{gvfsd-trash}]
        ├─ibus-x11───2*[{ibus-x11}]
        ├─irqbalance
        ├─ksmtuned───sleep
        ├─libvirtd───15*[{libvirtd}]
        ├─lsmd
        ├─lvmetad
        ├─master─┬─pickup
        │        └─qmgr
        ├─mcelog
        ├─mission-control───3*[{mission-control}]
        ├─nginx───nginx
        ├─packagekitd───2*[{packagekitd}]
        ├─polkitd───5*[{polkitd}]
        ├─pulseaudio───2*[{pulseaudio}]
        ├─rngd
        ├─rsyslogd───2*[{rsyslogd}]
        ├─rtkit-daemon───2*[{rtkit-daemon}]
        ├─smartd
        ├─sshd─┬─sshd───sshd───bash───su───bash
        │      └─sshd───sshd───bash───su───bash───pstree
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-udevd
        ├─tracker-store───7*[{tracker-store}]
        ├─tuned───4*[{tuned}]
        ├─udisksd───4*[{udisksd}]
        ├─upowerd───2*[{upowerd}]
        ├─vmtoolsd───{vmtoolsd}
        ├─vmtoolsd
        ├─vsftpd
        └─wpa_supplicant

查看 systemd,其 进程号为1,父进程号不会改变。

[root@localhost yum.repos.d]# ps aux | grep systemd
root          1  0.0  0.3 128092  6772 ?        Ss   09:22   0:06 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
root        493  0.0  0.2  36944  3880 ?        Ss   09:22   0:00 /usr/lib/systemd/systemd-journald
root        519  0.0  0.2  46912  5160 ?        Ss   09:22   0:00 /usr/lib/systemd/systemd-udevd
dbus        704  0.0  0.1  36456  3368 ?        Ssl  09:22   0:01 /bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
root        733  0.0  0.0  24260  1768 ?        Ss   09:22   0:00 /usr/lib/systemd/systemd-logind
root      14259  0.0  0.0 112652   964 pts/1    S+   12:05   0:00 grep --color=auto systemd

结束进程

[root@localhost yum.repos.d]# ps aux | grep firefox
fwj       13977 20.8 12.5 2130344 231868 ?      Sl   11:56   0:10 /usr/lib64/firefox/firefox
root      14116  0.0  0.0 112648   964 pts/1    R+   11:57   0:00 grep --color=auto firefox
[root@localhost yum.repos.d]# kill -9 13977
[root@localhost yum.repos.d]# ps aux | grep firefox
root      14122  0.0  0.0 112648   964 pts/1    S+   11:58   0:00 grep --color=auto firefox

后台运行

command & 后台运行

ctrl+z 后台运行
ctrl +c 结束进程
sleep 休眠

jobs 查看后台进程
fg[%作业号]
bg[%作业号]

[root@localhost opt]# ping awen.me > test &
[1] 15101
[root@localhost opt]# jobs
[1]+  Running                 ping awen.me > test &
[root@localhost opt]# fg 1
ping awen.me > test

控制进程

[root@localhost opt]# service vsftpd status
Redirecting to /bin/systemctl status  vsftpd.service
● vsftpd.service - Vsftpd ftp daemon
   Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2017-04-23 11:13:24 CST; 2h 25min ago
 Main PID: 12823 (vsftpd)
   CGroup: /system.slice/vsftpd.service
           └─12823 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

Apr 23 11:13:24 localhost.localdomain systemd[1]: Starting Vsftpd ftp daemon...
Apr 23 11:13:24 localhost.localdomain systemd[1]: Started Vsftpd ftp daemon.

RHEL 7 使用 systemctl 控制服务

systemctl start|stop|restart sshd

案例

[root@localhost opt]# systemctl stop vsftpd.service
[root@localhost opt]# systemctl status vsftpd.service
● vsftpd.service - Vsftpd ftp daemon
   Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled)
   Active: inactive (dead) since Sun 2017-04-23 13:43:00 CST; 6s ago
 Main PID: 12823 (code=killed, signal=TERM)

Apr 23 11:13:24 localhost.localdomain systemd[1]: Starting Vsftpd ftp daemon...
Apr 23 11:13:24 localhost.localdomain systemd[1]: Started Vsftpd ftp daemon.
Apr 23 13:43:00 localhost.localdomain systemd[1]: Stopping Vsftpd ftp daemon...
Apr 23 13:43:00 localhost.localdomain systemd[1]: Stopped Vsftpd ftp daemon.

查看服务是否开机启动

[root@localhost opt]# systemctl is-enabled sshd
enabled
  • start 开启
  • stop 停止
  • reload 重新加载
  • restart 重启
  • status 查看状态
  • eanble 开机启动
  • disable 开机不启动
  • reenable 重新设置开机启动
  • is-enabled 是否开机启动
  • unmask 不禁用服务
  • mask 禁用服务
  • is-active 是否启动
  • is-failed 是否失败

查看服务文件

[root@localhost opt]# systemctl list-unit-files | grep sshd
anaconda-sshd.service                         static
sshd-keygen.service                           static
sshd.service                                  enabled
[email protected]                                 static
sshd.socket                                   disabled