我正在开发一个web应用程序,将G代码发送到3D打印机。这台打印机有一个Linux堆栈。我可以在Win上的Ubuntu应用程序中使用以下命令
ssh root@ip
password
python3 /usr/share/griffin/command_util.py
sendgcode G28
键入python3 /usr/share/griffin/command_util.py
之后,
它将返回(Cmd) type command here
我尝试在PHP中使用ssh2,连接和身份验证部分工作正常。此外,list
,cd \usr\share\griffin && list
还返回与我在windows cmd中得到的结果相同的结果。但是在下面的代码中,在linux堆栈中运行py文件之后,它只返回(Cmd)
。sendgcode G28
什么也没发生。你知道吗
<?php
set_include_path('C:/xampp/htdocs/phpseclib1.0.15');
include('Net/SSH2.php');
$ssh = new Net_SSH2('ip');
if (!$ssh->login('root', 'password')) {
exit('Login Failed');
}
echo $ssh->exec('python3 /usr/share/griffin/command_util.py && sendgcode G28');
?>
Python中的以下代码不会收到任何retun值
#
import paramiko
# realize transport
trans = paramiko.Transport(('ip', 22))
# connection
trans.connect(username='root', password='ultimaker')
# Specify the transport of the sshclient object as the above trans
ssh = paramiko.SSHClient()
ssh._transport = trans
# execute command
stdin, stdout, stderr = ssh.exec_command('python3 /usr/share/griffin/command_util.py \n sendgcode G28')
print(stdout.read().decode())
# close connection
trans.close()
Linux堆栈显示sendgcode命令没有文档记录。我不明白为什么我可以在Windows cmd中使用它,但不能在PHP或Python中使用它。任何帮助都将不胜感激!你知道吗
只要删除PHP中的'&;'或Python中的'\n',就可以了
相关问题 更多 >
编程相关推荐