Chinaunix

标题: 关于ssh 远程执行脚本的疑问 [打印本页]

作者: yoshubom    时间: 2020-03-22 22:15
标题: 关于ssh 远程执行脚本的疑问
本帖最后由 yoshubom 于 2020-03-22 22:19 编辑

在B 机器上有两个脚本,分别是
loop.sh

  1. # loop.sh
  2. while true; do
  3.   date
  4.   sleep 2
  5. done
复制代码


loop12.sh

  1. # loop12.sh
  2. optv=$1
  3. while true; do
  4.   case $optv in
  5.   2)
  6.     echo "from stderr" >&2
  7.     date >&2
  8.     ;;
  9.   *)
  10.     echo "from stdout"
  11.     date
  12.     ;;
  13.   esac
  14.   sleep 2
  15. done
复制代码


现在从A 机器上远程调用loop.sh
  1. ssh HostB './loop.sh &'
复制代码

在A 的终端上会每隔2 秒打印出时间,Ctrl+c 结束之后,再到B 机器上查看
  1. ps -ef | grep loop
复制代码

发现./loop.sh 进程还在B 机器上。

奇怪的是,从A 机器上远程调用loop12.sh
  1. 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内嵌命令,具体情况不清楚,等高手来回答
这样是会退出的






欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2