0

Jetty 9 は EC2 Linux サーバーにインストールされ、jetty.sh が /etc/init.d にコピーされ、適切なリンクが /etc/rc1.d、/etc/rc2.d に作成されました。

sudo service jetty start SSHを使用してインスタンスに接続し、SSHセッションからログアウトした後でもサービスを正しくロードするjettyを実行しています。

しかし、ssh -t -i key.pem ec2-user@instance.domain.com 'sudo service jetty restart'私のインスタンスでリモート SSH コマンドを実行すると、起動しますが、すぐに停止します。ログは次のとおりです。

2013-11-14 18:03:01 main DispatcherServlet [INFO] FrameworkServlet 'restapi': initialization completed in 1376 ms
2013-11-14 18:03:01.824:INFO:oejsh.ContextHandler:main: Started o.e.j.w.WebAppContext@67fc3482{/,file:/usr/share/jetty/jetty-distribution-9.0.6.v20130930/webapps/ROOT/,AVAILABLE}{/ROOT}
2013-11-14 18:03:01.941:INFO:oejs.ServerConnector:main: Started ServerConnector@10614f3d{HTTP/1.1}{0.0.0.0:8080}2013-11-14 18:03:02.226:INFO:oejs.ServerConnector:main: Started ServerConnector@666c1838{SSL-http/1.1}{0.0.0.0:8443}2013-11-14 18:03:05.670:INFO:oejs.ServerConnector:Thread-3: Stopped ServerConnector@10614f3d{HTTP/1.1}{0.0.0.0:8080}
2013-11-14 18:03:05.671:INFO:oejs.ServerConnector:Thread-3: Stopped ServerConnector@666c1838{SSL-http/1.1}{0.0.0.0:8443}

リモートで実行しようとしましたがsudo nohup service jetty restart &、同じ結果です。

リモート (SSH) で再起動して実行し続けるにはどうすればよいですか?

4

6 に答える 6

1

作業ソリューション:

  1. EC2 インスタンスで、必要に応じて sudoers ファイルを編集します。
  2. 次に、コマンド ssh -i key.pem ec2-user@instance.domain.com 'sudo service jetty restart' で Jetty をリモートで再起動します。-t が削除されていることに注意してください。
  3. 再起動してもコマンドプロンプトが表示されない場合は、末尾に >/dev/null を追加してください。
于 2013-11-22T23:05:48.397 に答える
1

Jetty が完全に起動される前に init スクリプトが終了すると思うので、スクリプトの終了後数秒間はまだシェルが必要です。
ちょうど試して:

ssh -t -i key.pem ec2-user@instance.domain.com 'sh -c "sudo service jetty restart;sleep 8"'

繰り返しますが、スクリプトからの入力をリダイレクトすることを試みることができます

ssh -t -i key.pem ec2-user@instance.domain.com <<'FIN'
#commands to run on remote host
/bin/bash --login -i -s << FAIM
su -l -s /bin/bash << FEIN
your_password
nohup service jetty restart &
bg
disown -a
sleep 20
FEIN
sleep 5
FAIM
FIN

もう 1 つの方法は、Amazon クラウド サービスで料金を支払っているため、Red Hat サポートに問い合わせることです。

于 2013-11-15T18:05:31.680 に答える
0

上記の私のコメントから、これは機能しますか:

ssh -t -i key.pem ec2-user@instance.example.com "sudo su - -c 'service jetty start'"

?

于 2013-11-13T08:06:36.590 に答える