Chinaunix首页 | 论坛 | 博客
  • 博客访问: 783687
  • 博文数量: 143
  • 博客积分: 2077
  • 博客等级: 大尉
  • 技术积分: 2393
  • 用 户 组: 普通用户
  • 注册时间: 2012-09-28 12:57
文章存档

2016年(2)

2015年(3)

2014年(3)

2013年(41)

2012年(94)

分类: LINUX

2012-10-16 19:15:35

工作管理:jobs,kill,fg,bg,nohup
一、直接将命令丢到后台中“执行”:&
#tar -zpcf /tmp/etc.tar.gz /etc &
  但是如果这样,当出现stdout、stderr或别的数据时会直接在屏幕上显示出来,影响前台工作,此时可以这样: 
#tar -zpcf /tmp/etc.tar.gz /etc > /tmp/log.txt 2>&1 &

二、将目前的工作丢到后台中“暂停”:[ctrl]-z

三、查看目前的后台工作状态:jobs
#jobs [-lrs]
  -l:除了列出job number与命令串之外,同时列出PID号码;
  -r:仅列出正在后台运行的工作;
  -s:仅列出正在后台暂停的工作。

四、将后台工作拿到前台来处理:fg
#fg %jobnumber
#fg        ==>默认取出那个 + 的工作
   + 指的是最后一个呗放进后台的工作,处理的时候,如果不加号码,默认就取出这个来执行。

五、让在后台处于暂停状态的工作开始运行:bg
#bg %number


管理后台当中的工作:kill
#kill -signal %jobnumber        ==>默认使用的是PID,所以要加上 %,才能用前面的号码 。
#kill -l
  -l:列出目前kill能够使用的信号有哪些。
  signal:代表给予后面接的那个工作什么样的指示,用 man 7 signal 可知:
  -1:重新读取一次参数的配置文件
  -2:代表与由键盘输入[ctrl]-c同样的操作
  -9:立刻强制删除一个工作
  -15:与正常的程序方式终止一个工作,与-9不一样


脱机管理:nohup
nohup可以让你在脱机或者注销系统后,还能够让工作继续进行。
#nohup [命令与参数]        ==>在终端机前台中工作
#nohup [命令与参数] & ==>在终端机后台中工作

  注意,nohup不支持bash内置的命令。
例子:编辑一个睡着 500s 的程序
#vim sleep500.sh
#!/bin/bash
/bin/sleep 500s
/bin/echo "I have slept 500 seconds."
      丢到后台中去执行,并立刻注销系统:
#chmod a+x sleep500.sh
#nohup ./sleep500.sh &
#exit
  退出再登陆后,当你使用 ps -l 去查看你的进程,你会发现sleep500.sh还在运行。






阅读(585) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~