LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1419|回复: 8

debian下,后台运行程序的方法寻问。

[复制链接]
发表于 2006-5-2 02:08:25 | 显示全部楼层 |阅读模式
以前用redhat,可以能过ctrl+z来让一个正在前台执行的程序换到后台执行,可在debian下,用这个动作后,它虽然把程序调到了后台,但stoped,怎么让这个程序在后台running起来?除了commend & 。
发表于 2006-5-2 08:41:02 | 显示全部楼层
很少需要后台运行的程序
实在要后台 我认为是吃饱了
就用screen吧 关掉还在运行
回复 支持 反对

使用道具 举报

发表于 2006-5-2 08:50:52 | 显示全部楼层
怎么会呢?我这儿正常得很。
有些程序是不能在后台执行的,因为后台执行没有标准输入,你试试用
  1. sudo bash &
复制代码
来执行,如果要提示你输入密码的话,肯定直接失败。
或者
  1. vi &
复制代码
也会直接失败。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-2 10:13:54 | 显示全部楼层
二楼的话不太有道理哦,是没有懂我的意思?不用后台,Linux的多任务性怎么体现?如果做服务器用,没有图形界面,一个大程序一直占着终端你怎么做下一件事?不过还是要谢谢你的热情回复。
  谢谢三楼的回复,但是我问的情况是:现在我有一个大程序已经占着终端在运行了,我要把他调到后台去运行,就是在输入执行命令时忘了加&,我用ctrl+z它到后台去了,但停止不运行了。怎样让它在后台运行起来?
回复 支持 反对

使用道具 举报

发表于 2006-5-2 11:19:45 | 显示全部楼层
在ctrl+z是会有一个数,如[1] ...
然后bg 1,就可以了。
回复 支持 反对

使用道具 举报

发表于 2006-5-2 12:09:18 | 显示全部楼层
Post by gaofengl
二楼的话不太有道理哦,是没有懂我的意思?不用后台,Linux的多任务性怎么体现?如果做服务器用,没有图形界面,一个大程序一直占着终端你怎么做下一件事?不过还是要谢谢你的热情回复。
  谢谢三楼的回复,但是我问的情况是:现在我有一个大程序已经占着终端在运行了,我要把他调到后台去运行,就是在输入执行命令时忘了加&,我用ctrl+z它到后台去了,但停止不运行了。怎样让它在后台运行起来?

哦!我一时没有看懂你的意思。这样的,详细的来说:
ctrl+z就是挂起当前程序,然后bg可以让他在后台继续运行。fg可以让他到前台来。bg、fg都可以接受参数,就是工作号,你可以用jobs命令来查看当前有那些后台工作以及他们的工作号,kill命令也可以用工作号,只要在前面加上%,比如 kill %1
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-2 20:37:15 | 显示全部楼层
谢谢pluskid,当我用bg的时候,程序却到前台来运行起来了,并且再次ctrl+z不了,一直占着终端没办法。
回复 支持 反对

使用道具 举报

发表于 2006-5-2 22:15:28 | 显示全部楼层
你说的“在前台运行”应该不是真正的在前台运行,在前台运行就是占用了标准输入,让你不能再和shell交互输入命令之类的。也许你是说用bg之后还有一大堆东西输出到终端上吧,这个是这样的,他如果要终端输出的话,是会这样的,但是事实上这个时候你是可以使用shell的,如果你不管那些乱七八糟的输出,继续输入命令,还是可以正常执行的。要避免那些讨厌的输出,你可以用重定向把他们输出到某个文件,当然,如果你觉得不重要,可以直接重定向到/dev/null
  1. foo > /dev/null 2>&1 &
复制代码
但是如果对于已经在运行的程序的话,我还不知道如何实时重定向他的输出。

ps: 你说再次Ctrl+Z不行就正说明了他确实是在后台运行,只是在往前台输出东西罢了。这个时候前台没有什么程序运行,所以Ctrl+Z没有作用。这种情况我也经常碰到,例如我把某个wget的进程弄到后台,但是他还是在不停地输出进度信息。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-2 23:43:35 | 显示全部楼层
共同努力,找到了好方法一定要共享哦!谢谢回复!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表