Linux进程管理(命令)入门
进程是一个运行中的程序
进程查看
ps
能够查看当前终端下运行的进程
$ ps
PID TTY TIME CMD
26305 pts/0 00:00:00 bash
26312 pts/0 00:00:00 ps
PID即进程号,是进程的唯一标识(可以相当于主键?)
TTY是当前程序执行的终端,pts/0表示虚拟终端
TIME是进程运行的时间,参考价值不大
执行ps -ef
可以查看不同终端下运行的进程
$ ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 08:57 ? 00:00:00 /sbin/init splash
root 2 0 0 08:57 ? 00:00:00 [kthreadd]
root 3 2 0 08:57 ? 00:00:00 [rcu_gp]
root 4 2 0 08:57 ? 00:00:00 [rcu_par_gp]
root 6 2 0 08:57 ? 00:00:00 [kworker/0:0H-events_highpri
root 7 2 0 08:57 ? 00:00:00 [kworker/0:1-events]
root 8 2 0 08:57 ? 00:00:00 [kworker/u32:0-i915]
root 9 2 0 08:57 ? 00:00:00 [mm_percpu_wq]
root 10 2 0 08:57 ? 00:00:00 [rcu_tasks_rude_]
root 11 2 0 08:57 ? 00:00:00 [rcu_tasks_trace]
root 12 2 0 08:57 ? 00:00:00 [ksoftirqd/0]
root 13 2 0 08:57 ? 00:00:00 [rcu_sched]
....
PPID表示父进程号
使用pf -eLf
将能够显示线程(LWP就代表轻量级进程)
$ ps -eLf | more
UID PID PPID LWP C NLWP STIME TTY TIME CMD
root 1 0 1 0 1 08:57 ? 00:00:01 /sbin/init splash
root 2 0 2 0 1 08:57 ? 00:00:00 [kthreadd]
root 3 2 3 0 1 08:57 ? 00:00:00 [rcu_gp]
root 4 2 4 0 1 08:57 ? 00:00:00 [rcu_par_gp]
root 6 2 6 0 1 08:57 ? 00:00:00 [kworker/0:0H-events_highpri]
root 7 2 7 0 1 08:57 ? 00:00:00 [kworker/0:1-events]
root 9 2 9 0 1 08:57 ? 00:00:00 [mm_percpu_wq]
....
pstree
查看进程的树形结构
$ pstree
systemd─┬─ModemManager───2*[{ModemManager}]
├─NetworkManager───2*[{NetworkManager}]
├─accounts-daemon───2*[{accounts-daemon}]
├─acpid
├─avahi-daemon───avahi-daemon
├─bluetoothd
├─colord───2*[{colord}]
├─containerd───27*[{containerd}]
├─cron
├─cups-browsed───2*[{cups-browsed}]
├─cupsd
├─2*[dbus-daemon]
├─dnsmasq
├─dockerd───21*[{dockerd}]
...
直观的看到进程的父子关系
top
该命令查看更详细的进程信息
top - 09:30:30 up 33 min, 1 user, load average: 0.47, 0.49, 0.52
Tasks: 378 total, 1 running, 376 sleeping, 0 stopped, 1 zombie
%Cpu(s): 3.4 us, 1.6 sy, 0.0 ni, 95.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 15867.7 total, 8841.9 free, 4085.5 used, 2940.2 buff/cache
MiB Swap: 2048.0 total, 2048.0 free, 0.0 used. 11027.0 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND ...
1 root 20 0 168696 11616 8140 S 0.0 0.1 0:01.01 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_gp
4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_par_gp
6 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/0:0H-events_highpri
7 root 20 0 0 0 0 I 0.0 0.0 0:00.34 kworker/0:1-mm_percpu_wq
9 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 mm_percpu_wq
10 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_tasks_rude_
11 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_tasks_trace
12 root 20 0 0 0 0 S 0.0 0.0 0:00.06 ksoftirqd/0
13 root 20 0 0 0 0 I 0.0 0.0 0:03.11 rcu_sched
14 root rt 0 0 0 0 S 0.0 0.0 0:00.01 migration/0
15 root -51 0 0 0 0 S 0.0 0.0 0:00.00 idle_inject/0
16 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/0
...
top输出的前几行信息代表系统信息
top - 09:30:30 up 33 min, 1 user, load average: 0.47, 0.49, 0.52
第一行数据相当于uptime命令输出。09:30:30是当前时间,up 33 min 是系统已经运行的时间,1 users表示当前有1个用户在登录,load average: 0.47, 0.49, 0.52 分别表示系统一分钟平均负载,5分钟平均负载,15分钟平均负载
按下一个数字1,可以查看每个逻辑CPU的使用率,16核就显示16个CPU:
%Cpu0 : 0.3 us, 0.0 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu1 : 1.4 us, 1.0 sy, 0.0 ni, 97.6 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu2 : 0.3 us, 0.0 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu3 : 8.5 us, 0.7 sy, 0.0 ni, 90.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu4 : 0.0 us, 0.7 sy, 0.3 ni, 99.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu5 : 0.0 us, 0.3 sy, 0.3 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu6 : 0.0 us, 1.7 sy, 0.0 ni, 98.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu7 : 0.3 us, 0.3 sy, 0.3 ni, 99.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu8 : 0.7 us, 0.3 sy, 0.0 ni, 99.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu9 : 1.8 us, 1.4 sy, 0.0 ni, 96.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu10 : 2.3 us, 2.3 sy, 0.0 ni, 95.4 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu11 : 3.4 us, 6.4 sy, 0.0 ni, 90.2 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu12 : 7.2 us, 5.1 sy, 0.0 ni, 87.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu13 : 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu14 : 0.7 us, 1.7 sy, 0.3 ni, 97.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu15 : 0.7 us, 0.3 sy, 0.0 ni, 99.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
负载是用来衡量系统繁忙程度的,如果值为1的话,就表示满负载
Tasks: 378 total, 1 running, 376 sleeping, 0 stopped, 1 zombie
第二行的Tasks信息展示的系统运行的整体进程数量和状态信息。378 total 表示系统现在一共有378个用户进程,1 running 表示1个进程正在处于running状态,376 sleeping表示376个进程正处于sleeping状态,0 stopped 表示 0 个进程正处于stopped状态,1 zombie表示 有1个僵尸进程
%Cpu(s): 3.4 us, 1.6 sy, 0.0 ni, 95.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
第三行的%Cpu(s)表示的是总体CPU使用情况。
- us user 表示用户态的CPU时间比例
- sy system 表示内核态的CPU时间比例
- ni nice 表示运行低优先级进程的CPU时间比例
- id idle 表示空闲CPU时间比例
- wa iowait 表示处于IO等待的CPU时间比例
- hi hard interrupt 表示处理硬中断的CPU时间比例
- si soft interrupt 表示处理软中断的CPU时间比例
- st steal 表示当前系统运行在虚拟机中的时候,被其他虚拟机占用的CPU时间比例
MiB Mem : 15867.7 total, 8841.9 free, 4085.5 used, 2940.2 buff/cache
MiB Swap: 2048.0 total, 2048.0 free, 0.0 used. 11027.0 avail Mem
第4,5行显示的是系统内存使用情况。单位是KiB。totol 表示总内存,free 表示没使用过的内容,used是已经使用的内存。buff表示用于读写磁盘缓存的内存,cache表示用于读写文件缓存的内存。avail表示可用的应用内存
Swap原理是把一块磁盘空间或者一个本地文件当成内存来使用。Swap total表示能用的swap总量,swap free表示剩余,used表示已经使用的。这三个值都为0表示系统关闭了swap功能,由于演示环境是一台虚拟机,虚拟机一般都关闭swap功能
进程的控制命令
调整进程优先级
首先编写测试用的shell脚本test.sh
#!/bin/bash
echo $$ #打印PID
while :
do
:
done
运行该程序 ./test.sh:
$ ./test.sh
15889
使用top -p 15889
查看进程详细信息
top - 14:04:15 up 5:06, 1 user, load average: 0.83, 0.51, 0.33
Tasks: 1 total, 1 running, 0 sleeping, 0 stopped, 0 zombie
%Cpu(s): 6.4 us, 0.2 sy, 0.0 ni, 93.3 id, 0.1 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 15867.7 total, 730.2 free, 9453.5 used, 5684.0 buff/cache
MiB Swap: 2048.0 total, 1922.2 free, 125.8 used. 5519.4 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
15889 hwx 20 0 12576 3560 3332 R 99.7 0.0 0:57.58 bash
PR代表系统优先级,NI代表默认启动级别,即NICE值
使用nice命令,更改启动级别
$ nice -n 10 ./test.sh
17488
现在使用top命令查看,发现已经NI值已经被修改
使用renice可以修改运行中的程序的优先级
$ renice -n 15 17488
17488 (process ID) old priority 10, new priority 15
运行时末尾加上&可以将程序挂到后台运行,使其不会独占终端的交互:
$ ./test.sh &
[1] 17773
此时使用top指令依然可以查看到该进程处于运行状态
使用jobs可以查看在后台运行的程序:
$ jobs
[1]+ Running ./test.sh &
使用fg
命令可以将其调回到前台
$ fg 1
./test.sh
使用ctrl+Z可以将进程调到后台,并停止,将其置于挂起状态
$ fg 1
./test.sh
^Z
[1]+ Stopped ./test.sh
使用bg
命令可以将其挂到后台继续运行
进程的通信方式
kill命令可用于向进程发送信号,使用kill -l
可以显示能够发送的所有信号:
$ 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
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX
2号信号就是常常使用的Ctrl+C,表示通知前台进程组终止进程
9号信号表示立即结束程序,不会被阻塞 使用kill -9 pid
即可杀死pid对应的进程
守护进程与系统日志
守护进程和一般的进程有所区别,英文中称其为"daemon",即精灵,具有如下特点:
- 是运行在后台的一种特殊进程,它独立于控制终端并且周期性地执行某种任务或循环等待处理某些事件的发生
- 一般在系统启动时开始运行,除非强行终止,否则直到系统关机才随之一起停止运行
- 一般都以root用户权限运行,因为要使用某些特殊的端口或者资源
- 父进程一般都是init进程,因为它真正的父进程在fork出守护进程后就直接退出了,所以守护进程都是孤儿进程,由1号接管
sshd就是一个守护进程,其父进程是1号进程,以root身份运行
# ps -ef | grep sshd
root 3151 1 0 May04 ? 00:00:50 /usr/sbin/sshd
进入proc目录,以文件操作查看该进程的一些属性
# ls -l fd
total 0
lr-x------ 1 root root 64 Jul 4 13:24 0 -> /dev/null
lrwx------ 1 root root 64 Jul 4 13:24 1 -> 'socket:[28795]'
lrwx------ 1 root root 64 Jul 4 13:24 2 -> 'socket:[28795]'
lr-x------ 1 root root 64 Jul 4 13:24 3 -> '/var/lib/sss/mc/passwd (deleted)'
lrwx------ 1 root root 64 Jul 4 13:24 4 -> 'socket:[28800]'
lrwx------ 1 root root 64 Jul 4 13:24 5 -> 'socket:[28804]'
这里的1和2都指向socket描述符,1和2代表标准输出和错误输出,表示还进程会将其输出打印到日志文件里
系统日志一般存储在/var/log中,其中的messages是系统的常规日志文件
tail -f messages
命令可以跟踪messages文件的状态,secure是安全日志,dmesg是内核启动日志,如下的cron是计划任务
# tail -f cron
Jul 4 15:54:01 VM-4-16-centos CROND[2009455]: (root) CMD (flock -xn /tmp/stargate.lock -c '/usr/local/qcloud/stargate/admin/start.sh > /dev/null 2>&1 &')
Jul 4 15:54:01 VM-4-16-centos CROND[2009464]: (root) CMD (/usr/local/sa/agent/secu-tcs-agent-mon-safe.sh > /dev/null 2>&1)
Jul 4 15:55:01 VM-4-16-centos CROND[2009680]: (root) CMD (flock -xn /tmp/stargate.lock -c '/usr/local/qcloud/stargate/admin/start.sh > /dev/null 2>&1 &')
...
服务管理工具
在Linux中,安装任何带有服务和守护进程的包,系统默认会把这些服务的初始化及systemd脚本添加进去,不过此时它们并没有被启用
service
启动脚本目录: /etc/init.d/,基本上都是bash脚本程序
管理指令: service 服务名 [start | stop | restart | reload | status]
examples:
查看所有服务当前的运行状态
service --status-all
查看指定服务(vsftpd)的运行状态
service vsftpd status
停止指定服务(vsftpd)
service vsftpd stop
重启网络服务
service network restart
服务程序运行级别:
运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
运行级别2:多用户状态(没有NFS)
运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
运行级别4:系统未使用,保留
运行级别5:X11控制台,登陆后进入图形GUI模式
运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
使用chkconfig查看服务的运行级别:
# chkconfig --list
Note: This output shows SysV services only and does not include native
systemd services. SysV configuration data might be overridden by native
systemd configuration.
If you want to list systemd services use 'systemctl list-unit-files'.
To see services enabled on particular target use
'systemctl list-dependencies [target]'.
network 0:off 1:off 2:off 3:off 4:off 5:off 6:off
systemctl
启动脚本目录: /usr/lib/systemd/system/
常见操作: systemctl start|stop|restart|reload|enable|disable 服务名称
例如systemctl stop sshd.service
就可以停止掉ssh服务
systemctl start sshd.service
可以开启服务
enable可以使程序随着开机运行,disable则不会使程序随着开机运行
在system目录下,使用该命令查看所有运行级别
# ls -l runlevel*.target
lrwxrwxrwx 1 root root 15 Dec 22 2021 runlevel0.target -> poweroff.target
lrwxrwxrwx 1 root root 13 Dec 22 2021 runlevel1.target -> rescue.target
lrwxrwxrwx 1 root root 17 Dec 22 2021 runlevel2.target -> multi-user.target
lrwxrwxrwx 1 root root 17 Dec 22 2021 runlevel3.target -> multi-user.target
lrwxrwxrwx 1 root root 17 Dec 22 2021 runlevel4.target -> multi-user.target
lrwxrwxrwx 1 root root 16 Dec 22 2021 runlevel5.target -> graphical.target
lrwxrwxrwx 1 root root 13 Dec 22 2021 runlevel6.target -> reboot.target
查看运行级别:
# systemctl get-default
multi-user.target
.service文件
在system目录下,查看.service文件就可以得知服务的一些信息,例如查看sshd的service文件
# cat sshd.service
[Unit]
Description=OpenSSH server daemon
Documentation=man:sshd(8) man:sshd_config(5)
After=network.target sshd-keygen.target
Wants=sshd-keygen.target
[Service]
Type=notify
EnvironmentFile=-/etc/crypto-policies/back-ends/opensshserver.config
EnvironmentFile=-/etc/sysconfig/sshd
ExecStart=/usr/sbin/sshd -D $OPTIONS $CRYPTO_POLICY
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target
含义解释如下:
[Unit]字段
主要给出服务描述、启动顺序和依赖关系
Description:当前服务的简单描述
Documentation:服务文档
After和Before:表示启动顺序,不涉及依赖关系。Before=xxx.service表示本服务在xxx.service 启动之前启动,After=yyy.service表示本服务在yyy.service 之后启动
Wants:表示该服务和某服务存在某种弱依赖关系,即某服务停止运行或退出不影响该服务继续运行
Requires:表示”强依赖”关系,即某服务停止运行或退出,改服务也必须停止运行
Wants字段与Requires字段只涉及依赖关系,与启动顺序无关,默认情况下是同时启动的
[Service]字段
服务的启动行为以及如何启动、重启、停止等信息
Type=simple(默认值):systemd认为该服务将立即启动。服务进程不会fork。如果该服务要启动其他服务,不要使用此类型启动,除非该服务是socket激活型。
Type=forking:systemd认为当该服务进程fork,且父进程退出后服务启动成功。对于常规的守护进程(daemon),除非你确定此启动方式无法满足需求,使用此类型启动即可。使用此启动类型应同时指定 PIDFile=,以便systemd能够跟踪服务的主进程。
Type=oneshot:这一选项适用于只执行一项任务、随后立即退出的服务。可能需要同时设置 RemainAfterExit=yes 使得 systemd 在服务进程退出之后仍然认为服务处于激活状态。Type=oneshot允许指定多个希望顺序执行的用户自定义命令。
Type=notify:与 Type=simple 相同,但约定服务会在就绪后向 systemd 发送一个信号。这一通知的实现由 libsystemd-daemon.so 提供。
Type=dbus:若以此方式启动,当指定的 BusName 出现在DBus系统总线上时,systemd认为服务就绪。
Type=idle: systemd会等待所有任务(Jobs)处理完成后,才开始执行idle类型的单元。除此之外,其他行为和Type=simple 类似。
PIDFile:pid文件路径
ExecStart:指定启动单元的命令或者脚本,ExecStartPre和ExecStartPost节指定在ExecStart之前或者之后用户自定义执行的脚本。ExecReload:指定单元停止时执行的命令或者脚本。
ExecStop:指定单元停止时执行的命令或者脚本。
PrivateTmp:True表示给服务分配独立的临时空间
Restart:这个选项如果被允许,服务重启的时候进程会退出,会通过systemctl命令执行清除并重启的操作。
RemainAfterExit:如果设置这个选择为真,服务会被认为是在激活状态,即使所以的进程已经退出,默认的值为假,这个选项只有在Type=oneshot时需要被配置。
User字段可以设置服务的用户名
WorkingDirectory字段指定服务的安装目录
[Install]字段
如何安装这个配置文件,即怎样做到开机自启
Alias:为单元提供一个空间分离的附加名字
RequiredBy:单元被允许运行需要的一系列依赖单元,RequiredBy列表从Require获得依赖信息
Also:指出和单元一起安装或者被协助的单元
DefaultInstance:实例单元的限制,这个选项指定如果单元被允许运行默认的实例
WantedBy字段:表示该服务所在的 Target
Target的含义是服务组,表示一组服务
WantedBy=multi-user.target指的是服务所在的Target是multi-user.target
Systemd 有默认的启动 Target就是multi-user.target,在这个组里的所有服务,都将开机启动
SELinux简介
SELinux是安全增强型Linux: What is SELinux?
传统的 Linux 系统安全,采用的是 DAC(自主访问控制方式),而 SELinux 是部署在 Linux 系统中的安全增强功能模块,它通过对进程和文件资源采用 MAC(强制访问控制方式)为 Linux 系统提供了改进的安全性,在支持SELinux的系统中,所有的进程都有一个SELinux的标签
输入getenforce查看SELinux的状态:
# getenforce
Disabled
查看SELinux配置信息
# cat /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
如果修改了这个文件,要求重启系统才能生效
使用setenforce可以临时修改配置信息
使用ps -Z可以显示进程的标签
# ps -Z
LABEL PID TTY TIME CMD
- 2026618 pts/2 00:00:00 bash
- 2029090 pts/2 00:00:00 ps
诸多特性不再详细解释
Linux进程管理(命令)入门的更多相关文章
- 12个Linux进程管理命令介绍(转)
12个Linux进程管理命令介绍 [日期:2015-06-02] 来源:Linux中国 作者:Linux [字体:大 中 小] 执行中的程序在称作进程.当程序以可执行文件存放在存储中,并且运行的 ...
- [转帖]十二 个经典 Linux 进程管理命令介绍
https://www.cnblogs.com/swordxia/p/4550825.html 接了 http referer 头 没法显示图片 可以去原始blog 里面去查看. 随笔- 109 ...
- 12个Linux进程管理命令介绍
导读 执行中的程序称作进程.当程序可以执行文件存放在存储中,并且运行的时候,每个进程会被动态得分配系统资源.内存.安全属性和与之相关的状态.可以有多个进程关联到同一个程序,并同时执行不会互相干扰.操作 ...
- 十二 个经典 Linux 进程管理命令介绍
执行中的程序在称作进程.当程序以可执行文件存放在存储中,并且运行的时候,每个进程会被动态得分配系统资源.内存.安全属性和与之相关的状态.可以有多个进程关联到同一个程序,并同时执行不会互相干扰.操作系统 ...
- 12 个 Linux 进程管理命令介绍
执行中的程序在称作进程.当程序以可执行文件存放在存储中,并且运行的时候,每个进程会被动态得分配系统资源.内存.安全属性和与之相关的状态.可以有多个进程关联到同一个程序,并同时执行不会互相干扰.操作系统 ...
- Linux进程管理命令
CentOS默认并没有安装上psmisc这个软件包,就是像pstree,fuser这类的命令就没有了.如果想要执行这些命令最好的方法就是手动的去安装它们 解决方法: yum -y install ps ...
- s9 Linux 进程管理命令
9.1 ps:查看进程 9.2-3 pstree & pgrep 9.4-6 kill & killall & pkill 9.7 top:实时显示系统中各个进程的资源占用状况 ...
- linux命令之进程管理命令
1.ps:查看进程 该命令用于列出命令执行时刻的进程快照,如果想要动态的显示进程信息,可以使用top命令. 参数 说明 a(常用) 显示与终端相关的所有进程,包含每个进程的完整路径 x(常用) 显示与 ...
- Linux进程管理(第二版) --进程管理命令
进程管理命令 一.查看用户信息.5.15 分钟内的系统的,优先值越小,优先权越大 ] 1.nice 指定程序运行的优先级 格式 nice -n command 例如 nice -5 myprogrem ...
- 20165223 Linux安装及命令入门
预备作业3:Linux安装及命令入门 一.VirtualBox和Ubuntu的安装 通过学习实践基于VirtualBox虚拟机安装Ubuntu图文教程,我开始学习虚拟机的安装,根据教程一步步试着安装. ...
随机推荐
- Ansys经验之:杨氏模量的本质概念理解——仿真在线工作记录
Ansys经验之:什么是杨氏模量? 这是我见到的很多来培训的结构力学仿真人员的困惑,始终不能只管理解,但又是一个入门的重要概念. 本质:杨氏模量=应力/应变,即单位应变的应力.那什么叫单位应变呢,也很 ...
- 在DeepIn系统中使用eclipse创建maven的Web项目
1. 安装好jdk和eclipse以后,启动eclipse 2. 创建maven项目,选择Maven Project 3. 在创建项目过程中,创建简单Maven项目,不使用archetype创建(会联 ...
- 论C语言数组
一维数组 对于一个一维数组a[10]来说 它对储存空间的申请可以看成是这样的 数组名a就代表着首元素a[0]的地址,也很容易看出a+5是元素a[5]的地址. 二维数组 对于一个二维数组a[3] ...
- USB 驱动框架分析
这里先说一些概念性的东西,了解一下USB 一.关于usb设备 都见过很多,用过很多了,每当我们插上一个usb设备到pc的时 右下角就会弹出一个提示信息,提示"发现xxx"设备,再接 ...
- 最大公约数与最小公倍数_c/c++
gcd:greatest common divisor,最大公约数 欧几里得算法,也就是辗转相除法.公式:gcd(a, b) = gcd(b, a % b) 推论:gcd(b, a) == g ...
- 《MySQL是怎样运行的》第三章小结
- R 字符串操作超全总结
paste函数和paste0()函数 连接字符 > paste("a", 1:3) #默认空格符连接,即sep=" " [1] "a 1&quo ...
- idea 调试小心得
1.为什么需要Debug 目的:开发过程中 查找或定位错误或者阅读源码 程序运行的结果(4种情况) 情况1:没有任何bug,程序执行正确! 情况2: 运行以后,出现了错误或异常信息.但是通过 日志文件 ...
- 传输安全HTTPS
为什么要有 HTTPS 为什么要有 HTTPS?简单的回答是:"因为 HTTP 不安全".HTTP 怎么不安全呢? 通信的消息会被窃取,无法保证机密性(保密性):由于 HTTP 是 ...
- web初始:html记忆
12.13html框架 <! DOCTYPE html> <html lang="zh-CN"> <head> <meta charset ...