Linux:如何在后台排队一些工作?

A Q*_*ker 10 linux queue

这是我正在寻找的功能(并且还没有找到):

我有x个进程,我想按顺序运行.其中一些可能非常耗时.

我希望这些进程在shell的后台运行.

我知道nohup,但它似乎并不完美...假设job1是一项耗时的工作,如果我在执行nohup job1 && job2 && job3&,然后job2之后我从空行中ctrl + c并且job3不会运行,job1可能运行也可能不运行,具体取决于我让nohup运行多长时间.

有没有办法获得我想要的功能?我是ssh'ed到Linux服务器.对于奖励积分,即使我关闭连接,如果我排队的工作会继续运行,我也会喜欢它.

谢谢你的帮助.

编辑:问题的一个小附录:如果我有一个带有三个exec语句的shell脚本

exec BIGTHING exec smallthing exec smallthing

它肯定会顺序吗?有没有办法将这些全部包装到一个exec行中以获得相同的功能?

即exec BIGTHING&smallthing&smallthing或&&或somesuch

eum*_*iro 12

使用screen.

  1. ssh到服务器
  2. screen
  3. 启动你的程序:job1;job2;job3- 用分号分隔,它们将按顺序运行
  4. 脱离屏幕:CTRL-A,D
  5. 从服务器注销

(后来)

  1. ssh到服务器
  2. screen -r
  3. 并且你在你的shell中运行你的工作队列......

  • 好吧,那是我的"我不知道你能做到的!" 为了这一天! (2认同)

tac*_*tus 7

或者,如果您想要更多地控制队列,例如列出和修改条目的能力,请查看Task Spooler.它作为包在Ubuntu 12.10 Universe存储库中提供task-spooler.