标签: job-control

Bash 循环 - 在命令中按 Control-C 时如何停止循环?

我正在同步几个目录。我打开了一个 bash 终端,正在执行如下操作:

for DIR in * ; do rsync -a $DIR example.com:somewhere/ ; done
Run Code Online (Sandbox Code Playgroud)

但是,如果我想停止这一切,我按 Control-C。这会停止 rsync,但它会继续进行下一个。在这种情况下,我意识到发生了什么,然后像疯子一样按下 Control-C,直到一切恢复正常。

有什么方法可以“解决”这个问题。我想要它,所以如果我有一个这样的循环,然后按 Control-C,它会将我返回到我的 bash shell。

linux unix bash command-line-interface job-control

45
推荐指数
5
解决办法
3万
查看次数

40
推荐指数
5
解决办法
4万
查看次数

将进程置于后台而不停止它 - (ctrl+z)?

如果我通过在命令行中正常键入来启动一个进程,例如

wget http://site.com/bigfile.zip
Run Code Online (Sandbox Code Playgroud)

然后决定我想把它移到后台,我知道我可以使用像ctrl+z然后bg 1(或者jobs如果需要的话首先)把它放在后台。

我的问题是是否有一种方法可以将工作从前台直接移动到后台而不停止它 - 就像另一个捷径 ctrl+z

我也意识到我可以附加&到原始命令的末尾以在后台启动它,但问题在于您何时在前台启动一个进程然后意识到您想将它移到后台。

linux unix process job-control

19
推荐指数
1
解决办法
1万
查看次数

作业控制和 ssh

我似乎无法找到一种通过 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 不起作用。该怎么办?

任何人都可以帮助我吗?

linux ssh job-control nohup

5
推荐指数
3
解决办法
4919
查看次数

如果另一个 systemd 服务正在运行,则阻止 systemd 服务启动

在 systemd(UbuntuLinux 18.04 bionic 上的 v237)中,我可以创建一个服务文件(用于A.service),并指定另一个服务Requisite=B.service。这意味着如果我尝试启动A.serviceB.service尚未运行,则 A.service 将不会启动。这是 的弱版本,当我尝试启动时Requires它将启动。B.serviceA.service

\n\n

有相反的吗?我可以说\xe2\x80\x9c如果B.service正在运行,那么就不要启动这个服务\xe2\x80\x9d / \xe2\x80\x9c如果B.service正在运行,那么A.service无法启动\xe2\ x80\x9d?

\n\n

文档说如果我这样做Conflicts=B.service,那么启动A将停止 B 然后启动 A。但我不希望 B 停止,我只是希望 A 无法启动。我想要的东西就是Conflicts这样RequisiteRequires

\n\n

我可能可以将 更改ExecStart为会失败的 shell 命令systemctl is-active B.service或某种 hack。有没有合适的解决办法呢?

\n

job-control systemd systemd-service

5
推荐指数
2
解决办法
9709
查看次数

Bash:调用shell脚本但不等待返回码

是否可以在 Bash 中从另一个 shell 脚本调用 shell 脚本,但原始脚本不能等待子脚本完成?

bash job-control

2
推荐指数
1
解决办法
1万
查看次数