程序管理
概念
程序program 以二进制程序放置在存储媒介中(硬盘、光盘、软盘、磁盘等),以物理文件的形式存在
进程process 程序被触发后,执行者的权限与属性、程序的程序代码与所需数据都被加载到内存中,操作系统会给予这个内存内的一个单元标识符PID。进程,就是运行中的一个程序。
服务daemon 在后台中一直持续运行的常驻进程称为服务
fork and exec
fork复制父进程,然后将被复制出来的子进程以exec的方式执行,成为子进程
工作管理
概念
前台 可以出现提示符,可操作的环境。
后台 不能与用户互动,放到终端机的后台只是不可被[ctrl]+c掉,如果断开远程连接,该工作依然会被停止
脱机 即使断开远程连接,该工作依然不会停止
命令
&
直接将命令丢到后台中执行
结束出现如下字眼
[1] + Done tar -zpcf /tmp.etc.tar.gz /etc
例
tar -zpcf /tmp/etc.tar.gz /etc &
tar -zpcvf /tmp/etc.tar.gz /etc > /tmp/log.txt 2>&1 &
stdout与stderr都输出到log.txt中
tar
-zpcvf /tmp/etc.tar.gz /etc &> /tmp/log.txt &
stdout与stderr都输出到log.txt中
[ctrl]+z
将目前的工作房到后台中暂停
例
vim过程中,在一般模式下[ctrl]+z
find
/过程中,[ctrl]+z
jobs
查看目前的后台工作状态
job
[-lrs]
l 除了列出job number与命令串,同时列出PID
r 仅列出正在后台run的工作
s 仅列出正在后台暂停stop的工作
+代表最近被放到后台的工作号码,-代表最后第二个被放置到后台的工作号码,第三个以后的工作,没有+/-号
fg
将后台工作拿到前台来处理
fg
%number
number 为jobs查出的工作号码,%可有可无
例
fg
%1
bg
让工作在后台下的状态由stop变成run
bg
%number
number 为jobs查出的工作号码
kill
管理前台、后台、脱机的工作
kill
-signal %jobnumber|PID
signal 给予后面的工作一个什么指令
1 重新读取一次参数配置文件,类似reload
2 等同于键盘[ctrl]+c
9 立刻强制删除一个工作
15 正常的方式结束
%jobnumber|PID kill一般跟PID,如果是工作管理,则必须有%
killall
依据执行命令的名称(注:必须与ps aux的command名称一致)来给予信号管理前台、后台、脱机工作
killall
[-iIe] -signal [command name]
i 交互式的,如果需要删除,出现提示符给用户
I 大写i,命令名称忽略大小写
e exact,后面的command name要一致,但是整个命令不能超过15个字符
例
kill
-9 httpd <==不询问
killall
-i -9 bash <==询问
nohup
脱机或注销系统后,该工作依然可以运行。类似于at、cron
nohup
[命令与参数] <==在终端机前台中工作
nohup
[命令与参数] & <==在终端机后台中工作
注:nohup并不支持bash内置的命令,因此,命令必须是外部命令
例:
nohup
sleep500.sh
nohup
./sleep500.sh &