Chinaunix
标题:
关于ssh 远程执行脚本的疑问
[打印本页]
作者:
yoshubom
时间:
2020-03-22 22:15
标题:
关于ssh 远程执行脚本的疑问
本帖最后由 yoshubom 于 2020-03-22 22:19 编辑
在B 机器上有两个脚本,分别是
loop.sh
# loop.sh
while true; do
date
sleep 2
done
复制代码
loop12.sh
# loop12.sh
optv=$1
while true; do
case $optv in
2)
echo "from stderr" >&2
date >&2
;;
*)
echo "from stdout"
date
;;
esac
sleep 2
done
复制代码
现在从A 机器上远程调用loop.sh
ssh HostB './loop.sh &'
复制代码
在A 的终端上会每隔2 秒打印出时间,Ctrl+c 结束之后,再到B 机器上查看
ps -ef | grep loop
复制代码
发现./loop.sh 进程
还在
B 机器上。
奇怪的是,从A 机器上远程调用loop12.sh
ssh HostB './loop12.sh &'
复制代码
也会间隔2 秒打印时间,但是Ctrl+c 结束之后,发现在B 机器上的./loop12.sh 进程也消失了。
请问这是为什么呢?请各位高人指点,谢谢!
作者:
本友会机友会摄友会
时间:
2020-03-23 13:22
提示:
作者被禁止或删除 内容自动屏蔽
作者:
reyleon
时间:
2020-03-31 12:56
看到这个问题让我也开始寻找 "为什么" 了
真是奇怪
作者:
chengchow
时间:
2020-03-31 16:26
本帖最后由 chengchow 于 2020-03-31 16:28 编辑
应该和进程的调度方法有关,貌似只有在执行了shell内嵌命令的情况下,进程中断终端才会退出, echo就是shell内嵌命令,具体情况不清楚,等高手来回答
这样是会退出的
# loop.sh
while true; do
date
sleep 2
:
done
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2