Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ssh 从sudo运行进程捕获退出代码_Ssh_Sudo - Fatal编程技术网

Ssh 从sudo运行进程捕获退出代码

Ssh 从sudo运行进程捕获退出代码,ssh,sudo,Ssh,Sudo,我有一个脚本,其中我正在仔细检查返回代码的错误情况,以便在出现故障时尽早中止。此脚本的一个步骤涉及通过ssh和sudo以root用户身份在另一个框中运行命令 考虑: ssh $HOST sudo $CMD echo $? ssh可以很好地返回返回代码,但即使$CMD返回非零退出代码,sudo在运行命令后仍然返回0 如何将返回代码捕获到$CMD?我非常倾向于将其作为ssh的返回代码传回,但是如果有另一个简单的方法不能被$CMD的输出所混淆,我洗耳恭听。事实证明,sudo正确地传递了返回代码。我的

我有一个脚本,其中我正在仔细检查返回代码的错误情况,以便在出现故障时尽早中止。此脚本的一个步骤涉及通过
ssh
sudo
root
用户身份在另一个框中运行命令

考虑:

ssh $HOST sudo $CMD
echo $?
ssh
可以很好地返回返回代码,但即使
$CMD
返回非零退出代码,
sudo
在运行命令后仍然返回0


如何将返回代码捕获到
$CMD
?我非常倾向于将其作为
ssh
的返回代码传回,但是如果有另一个简单的方法不能被
$CMD
的输出所混淆,我洗耳恭听。

事实证明,
sudo
正确地传递了返回代码。我的测试用例很可能是用后续执行或条件测试覆盖了
$?
。我通常使用一个命名变量来保留
$?
以避免发生这种情况,但这里有相同的情况。

我在回显结果,因此尽管ssh正确地传递了状态代码,但回显返回0。