gpt4 book ai didi

linux - Shell Scripting ssh 执行命令

转载 作者:太空宇宙 更新时间:2023-11-04 12:05:50 24 4
gpt4 key购买 nike

我不知道如何在远程设备上通过 ssh 执行这个特定的组合 shell 脚本命令。

#!/bin/bash

cmd=""
command="restart"

case "$command" in
restart)
cmd+="pkill -f fileA.py;"
cmd+="python3 -u fileA.py >> fileA.log &"
;;
*)
echo "Unknown command"
esac


cmd=$(ssh root@foobar $cmd)

出现的错误是:

pkill -f fileA.py;python3 -u fileA.py >> fileA.log &
pkill:无效的用户名:fileA.py

我知道整个字符串被解释为一个命令,但这不是我想要实现的。

感谢任何帮助。

最佳答案

您确定粘贴的代码正确吗? pkill 错误消息来自使用 -u
-U 选项。请先检查一下。


接下来,您缺少引号给您带来了麻烦。在 shell 替换变量后,您将得到:

cmd=$(ssh root@foobar pkill -f fileA.py;python3 -u fileA.py >> fileA.log &)

因此,您要终止远程系统上的进程,然后在本地系统上启动它。

我认为你真的需要这个:

case "$command" in
restart)
cmd="pkill -f fileA.py; nohup python3 -u fileA.py >> fileA.log & disown"
;;
*)
echo "Unknown command"
esac


cmd=$(ssh root@foobar bash -c "$cmd")

nohupdisown 允许后台进程在 shell 退出后继续运行。

关于linux - Shell Scripting ssh 执行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50776688/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com