[英]java.io.IOException: Cannot run program “sudo sh /etc/rc.d/init.d/jbossas7 restart”: error=2, No such file or directory
I want to make my app restart JBoss which is using as a Linux service. 我想让我的应用重新启动用作Linux服务的JBoss。 This is how I do: 这是我的方法:
String array[] = { "sudo sh /etc/rc.d/init.d/jbossas7 restart", "login" };
String pas = "pass";
Process proc = null;
BufferedWriter writer = null;
try {
proc = Runtime.getRuntime().exec(array);
writer =
new BufferedWriter(new OutputStreamWriter(proc.getOutputStream()));
writer.write(pas);
} catch (IOException e) {
e.printStackTrace();
}
The jbossas7
contents: jbossas7
内容:
#!/bin/bash### BEGIN INIT INFO
#chkconfig: 345 90 10
#description: JBOSS 7
#processname: jbossas7
#Provides: jbossas7
#Required-Start: $local_fs $remote_fs $network $syslog
#Required-Stop: $local_fs $remote_fs $network $syslog
#Default-Start: 2 3 4 5
#Default-Stop: 0 1 6
#Short-Description: Start/Stop JBoss AS 7
### END INIT INFO
## Include some script files in order to set and export environmental variables
## as well as add the appropriate executables to $PATH.
[ -r /etc/profile.d/java.sh ] && . /etc/profile.d/java.sh
[ -r /etc/profile.d/jboss.sh ] && . /etc/profile.d/jboss.sh
JBOSS_HOME=/usr/local/jboss-eap-6.2
AS7_OPTS="$AS7_OPTS -Dorg.apache.tomcat.util.http.ServerCookie.ALLOW_HTTP_SEPARATORS_IN_V0=true" ## See AS7-1625
AS7_OPTS="$AS7_OPTS -Djboss.bind.address.management=0.0.0.0"
AS7_OPTS="$AS7_OPTS -Djboss.bind.address=0.0.0.0"
case "$1" in
start)
echo "Starting JBoss AS 7..."
#sudo -u jboss sh ${JBOSS_HOME}/bin/standalone.sh $AS7_OPTS ## If running as user "jboss"
#start-stop-daemon --start --quiet --background --chuid jboss --exec ${JBOSS_HOME}/bin/standalone.sh $AS7_OPTS ## Ubuntu
${JBOSS_HOME}/bin/standalone.sh $AS7_OPTS &
;;
stop)
echo "Stopping JBoss AS 7..."
#sudo -u jboss sh ${JBOSS_HOME}/bin/jboss-admin.sh --connect command=:shutdown ## If running as user "jboss"
#start-stop-daemon --start --quiet --background --chuid jboss --exec ${JBOSS_HOME}/bin/jboss-admin.sh -- --connect command=:shutdown ## Ubuntu
${JBOSS_HOME}/bin/jboss-cli.sh --connect command=:shutdown
;;
restart)
echo "Stopping JBoss AS 7..."
#sudo -u jboss sh ${JBOSS_HOME}/bin/jboss-admin.sh --connect command=:shutdown ## If running as user "jboss"
#start-stop-daemon --start --quiet --background --chuid jboss --exec ${JBOSS_HOME}/bin/jboss-admin.sh -- --connect command=:shutdown ## Ubuntu
${JBOSS_HOME}/bin/jboss-cli.sh --connect command=:shutdown
echo "Starting JBoss AS 7..."
#sudo -u jboss sh ${JBOSS_HOME}/bin/standalone.sh $AS7_OPTS ## If running as user "jboss"
#start-stop-daemon --start --quiet --background --chuid jboss --exec ${JBOSS_HOME}/bin/standalone.sh $AS7_OPTS ## Ubuntu
${JBOSS_HOME}/bin/standalone.sh $AS7_OPTS &
;;
*)
echo "Usage: /etc/init.d/jbossas7 {start|stop|restart}"; exit 1;
;;
esac
exit 0
The command: 命令:
sudo sh /etc/rc.d/init.d/jbossas7 restart
works well currently in terminal mode. 目前在终端模式下运作良好。 But my code says 但是我的代码说
java.io.IOException: Cannot run program "sudo sh /etc/rc.d/init.d/jbossas7 restart": error=2, No such file or directory
What's wrong? 怎么了?
The first element of the input array is being interpreted as the executable. 输入数组的第一个元素被解释为可执行文件。 Try 尝试
String array[] =
{ "sudo", "sh", "/etc/rc.d/init.d/jbossas7", "restart", "login" };
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.