我遇到了问题,我试图执行在另一台服务器上分配的PERL脚本。如果我在Linux Shell中执行该命令,该脚本将正确运行。如果我执行该脚本中的Apache Tomcat在同一台服务器分配的Perl脚本,运行正常,但是当我试图通过SSH的Tomcat执行脚本,总是错误代码结束255从Java执行Perl脚本tomcat返回255退出代码
的Perl脚本:
现在#!/usr/bin/perl
my $sleeptime = 10;
sleep($sleeptime);
my $argumento=$ARGV[0];
if ($argumento eq "A") {
exit 0;
} else {
exit 192;
}
,这是Java文件
String command = "ssh [email protected] '/usr/bin/perl /var/www/testPerl.pl A'";
process = Runtime.getRuntime().exec(command);
process.waitFor();
if (process.exitValue() == 0) {
System.out.println("Show icon ok");
} else {
System.out.println("Show error");
}
代码如果我更改命令变量
String command = "/usr/bin/perl /var/www/testPerl.pl A";
返回代码正常(0或192)
必须远程执行,所以我不能将真正的PERL复制到tomcat目录。我确实是为了测试而做的。
请问,当你直接输入(不带Tomcat)的ssh命令运行?你有没有收到任何错误信息?是否为Tomcat用户设置了无密码SSH? '/ var/www'中的脚本是否也存在于你登录的服务器上? – Thilo
当我运行shell Linux时,它运行完美。如果我用“A”参数运行返回0,或者当我与其他 – Guille