加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 通过包含nohup的ssh启动远程脚本

发布时间:2020-12-16 01:21:58 所属栏目:安全 来源:网络整理
导读:我想通过ssh远程启动脚本,如下所示: ssh user@remote.org -t 'cd my/dir ./myscript data my@email.com' 该脚本执行各种工作正常,直到与nohup行: nohup time ./myprog $1 my.log mutt -a ${1%.*}/`basename $1` -a ${1%.*}/`basename ${1%.*}`.plt $2 my.l
我想通过ssh远程启动脚本,如下所示:
ssh user@remote.org -t 'cd my/dir && ./myscript data my@email.com'

该脚本执行各种工作正常,直到与nohup行:

nohup time ./myprog $1 >my.log && mutt -a ${1%.*}/`basename $1` -a ${1%.*}/`basename ${1%.*}`.plt $2 < my.log 2>&1 &

它应该启动程序myprog,将其输出传递给mylog并发送一封电子邮件,其中包含由myprog创建的一些数据文件作为附件,日志作为正文.虽然当脚本到达此行时,ssh输出:

Connection to remote.org closed.

这里有什么问题?

谢谢你的帮助

您的命令在后台运行一系列进程,因此调用脚本将立即退出(或很快就会退出).这将导致ssh关闭连接.这反过来将导致SIGHUP被发送到连接到终端的任何进程 – -t选项导致创建.

你的时间./myprog进程受到nohup的保护,所以它应该继续运行.但你的笨蛋不是,这可能是这里的问题.我建议你将命令行改为:

nohup sh -c "time ./myprog $1 >my.log && mutt -a ${1%.*}/`basename $1` -a ${1%.*}/`basename ${1%.*}`.plt $2 < my.log 2>&1 " &

所以整个管道都受到保护. (如果这不能解决问题,则可能需要对文件描述符执行某些操作 – 例如,mutt可能有其他问题,终端没有 – 或者引用可能需要调整,具体取决于参数 – 但请试一试现在…)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读