在最近的工作中,需要用到Java调用服务器上的shell脚本,在这里总结下如何通过Java调用脚本。
这里直接贴上代码:
String bashCommand = "/home/go/script/restart_go.sh"; //①
Runtime runtime = Runtime.getRuntime();
Process pro = runtime.exec(bashCommand); //②
int status = pro.waitFor(); //③
if (status != 0){ //④
logger.error("restart go server error");
return;
}
logger.info("restart go server success");
①脚本在服务器上的绝对路径
②进行脚本的调用
③这里需要注意,需要调用waitFor()等待脚本执行完,不然的话,方法结束会导致脚本运行失败。
④如果执行完的状态码是0,就代表脚本执行成功
这里调用的脚本必须有执行的权限,不然的话会报错,如果报了没有权限的错误,那么把命令改成:
String bashCommand = "chmod 777 /home/go/script/restart_go.sh";