首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Unix中后台运行作业

在Unix中后台运行作业
EN

Stack Overflow用户
提问于 2015-09-06 13:58:12
回答 2查看 590关注 0票数 0

我们运行一个交互式perl脚本,该脚本从终端获取一组输入(输入是脚本应该运行的时间),并运行到完成。作业在前台运行。我已经让作业在后台运行,方法是先敲击CTRL-Z,然后敲击bg %-命令。一旦当前作业在后台运行,如果我使用一组不同的输入运行相同的perl脚本,并尝试将其放入后台,则当我按如下所示输入CTRL-Z时,第一个作业将被终止。

^Z1终止scriptname

2+已停止脚本名称

如果我弄错了,请指出。

EN

回答 2

Stack Overflow用户

发布于 2015-09-06 17:15:55

当您按^Z时,正在运行的脚本停止,在bg之后,它将继续(在后台)。

当您在命令行上执行某些操作时,您将获得bg作业的反馈。

使用[1] Terminated scriptname,您可以看到第一个脚本已经完成。使用[2]+ Stopped scriptname时,您会看到第二个作业已暂停并等待bg/fg命令。

使用^Z + bg与将&附加到命令(对于非交互式程序)几乎相同。您可以尝试使用

代码语言:javascript
复制
sleep 1 &
# now wait few seconds
ps
# you will see the terminated script

sleep 6 &
sleep 3; ps
sleep 4; ps

# and now repeat these cases with ^Z / bg instead of &
票数 0
EN

Stack Overflow用户

发布于 2015-09-06 21:10:14

试试nohup

代码语言:javascript
复制
nohup nice <your_script followed by parameters(separated by space)> &

它将为您提供process_id。按Ctrl+C退出命令,并通过ps -ef验证该命令是否仍在运行。我记得用不同的参数运行同一脚本的多个实例,如下所示。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32420523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档