dev*_*vin 5 linux ssh job-control nohup
我似乎无法找到一种通过 ssh 管理工作的体面方法。我想在 ssh 会话中开始一项工作,注销,重新登录,做一个 fg,检查工作,注销,然后重复整个过程。nohup 似乎效果不佳。
我用过这个命令
$ nohup script & > nohup.out
[1] 28128
$ nohup: ignoring input and appending output to `nohup.out'
[1]+ Exit 255 nohup script
Run Code Online (Sandbox Code Playgroud)
如果我这样做
$ jobs
$ ps -ef | grep script
Run Code Online (Sandbox Code Playgroud)
我什么也没得到,即找不到进程。
另外,我有一个相关的问题是:如果我在 ssh 会话中,并且想将作业发送到后台,则 ctrl-z 不起作用。该怎么办?
任何人都可以帮助我吗?
pQd*_*pQd 19
不错的选择之一是使用screen。
更多例子在这里。
另一个 - 如果是一次性工作,可能更糟 - 选项是妖魔化您的 shell 脚本,添加适当的日志记录并使用 start-stop-daemon 在后台运行它直到它完成。状态 - 可以在生成的日志中检查。
我也使用 screen ..通常我登录并运行
screen -S $meaningful-name
Run Code Online (Sandbox Code Playgroud)
然后当我重新连接时,我就跑
screen -r $meaningful-name
Run Code Online (Sandbox Code Playgroud)
如果我在我们的一台服务器上以 root 身份运行,我通常也会将我的用户名放在屏幕会话名称中,以便其他人可以看到它并在需要时连接到它。
您可以使用该程序screen。我用它来管理几个交互式 shell 程序。
用法:
screen
startyoujob.sh
<C-A D> (Ctrl A then D, will detach your session)
screen -r (this will reattach your session)
Run Code Online (Sandbox Code Playgroud)
几screen比在尖端处的Arch Linux的Wiki的官方screen网站,以及一些为您screenrc提示和技巧(含屏幕截图)。
| 归档时间: |
|
| 查看次数: |
4919 次 |
| 最近记录: |