AAa*_*Aaa 0 linux bash scripting
我想编写一个脚本来模拟由于某种原因被中断的进程.
所以我尝试运行一些杀死过程的东西:
ssh -f localhost sleep 7;kill pid
call_function_from_another_script_that_runs_the_process
Run Code Online (Sandbox Code Playgroud)
希望ssh命令因为"-f"而在后台运行,并且由于睡眠,kill命令不会很快执行.问题是睡眠不会在这里生效.杀戮正在被立即执行.
如果我在没有-f的情况下运行ssh,那么第二行不会被调用,我的进程也不会运行.
请假设第二行是它所说的 - 从另一个脚本运行一个函数来运行该过程.我不能"将该函数放在脚本中并运行它"或者更改已经编写的其他内容的东西.
任何的想法?
谢谢.
您不需要使用ssh在后台运行某些东西.用这个:
(
sleep 7
kill pid
) &
call_function_from_another_script_that_runs_the_process
Run Code Online (Sandbox Code Playgroud)
注意"&"将整个子shell放在后台.在子shell中,首先sleep运行a,然后运行a kill.
顺便提一下,kill示例中的命令立即生效的原因是因为该行的脚本有两个命令:" ssh -f localhost sleep 7"和" kill pid",而不是sleep 7;kill pidSSH会话中的一个命令(" ").
| 归档时间: |
|
| 查看次数: |
437 次 |
| 最近记录: |