码迷,mamicode.com
首页 > 其他好文 > 详细

多任务运行 bg / fg / nohup / kill - 笔记1

时间:2017-12-25 15:38:21      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:bg fg kill nohup

Linux是支持多任务运行的。

而且,可以将任务丢入后台运行,例如:

[root@www ~]# tar -zpcf /tmp/etc.tar.gz /etc &

[1] 8400 <== [job number] PID

当tar指令完成后,会显示[1]+ Done tar -zpcf /tmp/etc.tar.gz /etc

在背景当中执行的指令,如果有 stdout 及 stderr 时,他的数据依旧是输出到屏幕上面 的, 所以,我们会无法看到提示字符,当然也就无法完好的掌握前景工作。同时由于是背景工作的tar,此时你怎么按下 [ctrl]+c 也无法停止屏幕被搞的花花绿绿的!所以啰,最佳的状况就是利用数据流重导向, 将输出数据传送至某个档案中。举例来说,我可以这样做:

 [root@www ~]# tar -zpcvf /tmp/etc.tar.gz /etc > /tmp/log.txt 2>&1 & 

[1] 8429

这样就能数据流重导向啦,避免影响当前作业。

如果在当前指令界面,按ctrl+z,则当前指令会进入后台且状态会变为stop状态看,例如:

[root@www ~]# vi ~/.bashrc

# 在 vi 的一般模式下,按下 [ctrl]-z 这两个按键,则会提示:[1]+ Stopped vim ~/.bashrc,其中的“+号”表示是最后丢入后台的程序,如果前台用fg指令,则有+号的程序会被调用。

fg指令,将后台程序送到前台来

bg指令,将前台程序放到后台去执行,与ctrl+z不同之处是,被bg的指令在后台状态是running

nobup指令,脱机后保持程序在终端机继续执行,其与at的区别,at是将程序放入系统背景中执行,与终端机无关。

kill指令,给程序发送信号,用以启动或结束程序,常见kill -1 启动/-9 强制结束 -15 正常流程结束程序





多任务运行 bg / fg / nohup / kill - 笔记1

标签:bg fg kill nohup

原文地址:http://blog.51cto.com/legendland/2054374

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!