[Command] Linux 进程管理
来源:互联网 发布:php开源电商系统源码 编辑:程序博客网 时间:2024/06/11 02:41
工作管理(Job Control)
在进行bash的工作管理时需要注意。
1)前台就是指你可以控制的命令行。
2)后台就是自行运行的工作,你无法使用ctrl+c终止,但可以使用fg/bg调用。
3)后台中执行的程序不能等待输入。
后台执行
在命令行后面加上&
。此时,命令行仍然可以进行别的操作。此时,当任务已经完成时,会在命令行中有所显示。但为了让自己更专注于命令行的操作,可以将后天运行程序的输出和错误输出重定向到一个输出文件中。
tar -zocvf file file2 > /tmp/log.txt 2>&1 &
暂时挂起程序
在运行程序时,按下ctrl+z可以暂时挂起程序,但不终止。
例如在vi中,可以按下ctrl+z然后在命令行中操作。
jobs 查看目前后台工作状态
jobs [-lrs]-l: 列出job number与命令行之外,还有PID-r:仅列出目前在后台run的工作-s:仅列出正在后台中暂停的工作
jobs[1] suspended (tty output) nice -n -10 vi[2] suspended (tty output) sudo nice -n -10 vi[3] - suspended top | grep --color=auto 'Balltree'[4] + suspended top | grep --color=auto 'Balltree'
其中,+表示最近被放到后台中工作的号码,-表示最后第二个被放在后台中的工作号码。
fg 将后台工作拿到前台处理
fg %number
默认取出[+]的工作。
number表示工作号码。
bg 让工作在后台下的状态变为运行态
bg %number
运用同上。
管理后台工作,kill
kill -signal %number-l: 列出目前kill能够使用的signal-1:重新读取参数的配置文件(reload)-2:代表由键盘输入ctrl+c同样的操作-9:立即强制删除一个工作-15:以正常的程序方式终止一项工作。-17:以ctrl-z来暂停一个进程的执行
值得注意的是,-9表示的强制删除,不是正常的删除过程,可能有些文件不会被删除。
脱机管理
如果你希望程序在你脱机之后仍然能够正常的运行,则需要将工作放在系统后台工作。nohup可以让你在脱机或注销系统后,还能够正常让国祚继续进行。
nohup [..] # 在终端机前台工作nohup [...] & # 在终端机后台工作
需要注意的是,nohup不支持bash内置的命令,因此你的命令必须是外部命令,例如运行一段程序等。
test.py
print 'yesy'
nohup python test.py &
此时这个python程序会在系统后台中运行。
进程管理
进程管理是非常重要的操作。有一次我在帮别人debug时,发现有一个程序在后台一直运行,因为他能够持续不断地创建一个文件,每当我删除这个文件时,没过一会他又会出现。这时,就需要通过进程管理来找到这个出问题的程序,并将之kill。
ps 进程的查看
ps aux # 查看系统所有进程数据ps -lA # 查看系统的数据ps -l # 仅列出bash的程序
S表示这个程序所处的状态
1)R:运行状态
2)S:休眠状态
3)D:不可唤醒的睡眠状态
4)T:终止状态
5)Z:僵尸状态
CMD:该程序的实际命令,最能直接显示该进程的意图。
top 动态查看进程的变化
-d:后面接秒数,表示进程界面更新的秒数。-p:指定某些歌PID来进行检测
查看某个进程的使用内存也可以使用top。
top -l 1 | grep 'zsh'
pstree 描述进程树
通过pstree能够很快地找到进程的父进程和子进程。
pstree | grep 'zsh'
|--= 04745 yanzexin /bin/zsh ./script.sh | | \-+= 57913 yanzexin -zsh | | \--- 62271 yanzexin grep --color=auto zsh | | \--= 61334 yanzexin -zsh | | \--= 60544 yanzexin -zsh | \--= 61954 yanzexin -zsh
进程执行的优先级
进程执行的优先级是由PRI来决定的。PRI越小,优先级越高。但用户是无法直接修改PRI的,只能改变NI。系统会自动根据目前系统状态来决定如何修改程序的PRI。
newPRI = oldPRI + NI
父进程的NI和子进程的NI是相同的。
nice 可以用于修改程序的NI
nice -n -5 vi &ps -l
当我们需要进行备份工作,由于备份工作需要消耗很大的系统资源,所以此时我们希望增大程序的NI值,从而减小程序的优先级。
具体的描述见
man nice
- [Command] Linux 进程管理
- (LINUX管理) 后台进程相关command
- [Command]Linux 账号管理
- Linux 进程管理
- Linux 进程管理
- Linux 进程管理
- Linux进程管理
- Linux 进程管理
- Linux 进程管理
- linux进程管理
- Linux 进程管理
- Linux 进程管理
- Linux 进程管理
- Linux 进程管理
- Linux 进程管理
- Linux 进程管理
- Linux 进程管理
- linux进程管理
- webpack前段构建性能优化策略小结
- [VC]setsockopt 设置socket 详细用法(超时、非阻塞等)
- 阿里云数加Max Compute的Java Map Reduce程序读取文本资源及其命令行和IDE运行配置
- 关于手机上不能用window.close的问题
- linux使用命名
- [Command] Linux 进程管理
- 消息队列
- C++中引用(&)的用法和应用实例
- June Challenge 2017 | A Good Set
- 领导者/追随者(Leader/Follower)
- spring mvc和struts2区别
- ubuntu nginx+redis+tomcat集群配置
- 解析Elasticsearch/lucene打分策略
- ListView中数据的分批及分页加载