------ ◆2025/06/06 ------ Systemd+SSH+sudo制御でApacheやTomcat等のWebアプリケーションサーバーを遠隔から起動・停止する処理を、 バッチ処理実行マシン、Webサーバの両方に専用のLinuxユーザーを作成して実行する方針にしたいです。 その場合のLinuxユーザーの名前として世の中でよく使われる、用途や目的が分かりやすく管理しやすい名前の案を、 5つ挙げてください。 ------ webops svc_webctl remoteadmiin tomcatctl ------ 命名のベストプラクティス プレフィックスで用途や制限を明示(例:svc_, sys_, remote_) アプリ種別や操作対象を含める(例:web, tomcat, apache) 制御権限を示す語を含める(例:ctl, admin, runner) だそうなので、apsvoperでも外れてはいないが…発音がしづらい。 ------ tomcat-admin tomcat-operator tomcat-service svc-tomcat tomcat-ctrl ------ 別のLinuxマシンからssh接続で ssh user@tomcat-server "sudo systemctl start tomcat" を実行後、エラーなくTomcatプロセスが起動したかどうかの処理結果を、別のLinux側(ssh実行元)に返したいです。 どのような方法がありますか? ------ 方法1. 単純にsudo systemctlの終了ステータスで判断 ssh user@tomcat-server "sudo systemctl start tomcat" if [ $? -eq 0 ]; then echo "Tomcat起動成功" else echo "Tomcat起動失敗" fi ------ 方法2. start+sleep 5後、systemctl is-activeで稼働中かどうかを返す STATUS=$(ssh user@tomcat-server "sudo systemctl start tomcat && sleep 5 && sudo systemctl is-active tomcat") if [ "$STATUS" = "active" ]; then echo "? Tomcat起動成功" else echo "? Tomcat起動失敗: 状態 = $STATUS" fi ------ 方法3. start+sleep 5後、systemctl statusやjournalctl -u tomcatなどの詳細なログメッセージを返して判断。 active(running)、failed、exit-codeなどの値や文字列で異常有無が判定できる ------ 方法4. start+sleep 5後、実際にcurlでアクセスしてみてHTTP応答で判断 if curl -s http://webserver:8080 > /dev/null 2>&1; then echo "SUCCESS: Tomcat started and responding" exit 0 else echo "WARNING: Tomcat service active but not responding" exit 1 fi ------ 方法5. start+sleep 5後、ssコマンドでポートをTomcatがListenしているかどうかで起動成否を判定 ssh user@tomcat-server "sudo systemctl start tomcat && sleep 5 && ss -ltnp | grep :8080" ------ 方法6. start+sleep 5後、psコマンドでプロセスが生きているかで起動成否を判定 ssh user@tomcat-server "sudo systemctl start tomcat && sleep 5 && pgrep -f 'org.apache.catalina.startup.Bootstrap'" 戻り値が0ならプロセスあり、1ならプロセスなし(起動していない) ------ 方法7. start+sleep 5後、catalina.outログファイルの末尾を見てエラー有無を判定 ssh user@tomcat-server "sudo systemctl start tomcat && sleep 5 && tail -n 20 /opt/tomcat/logs/catalina.out" ------ なお、systemctlのis-active/status、ssやps等のコマンドを/etc/sudores.dで許可する設定が必要 youruser ALL=(ALL) NOPASSWD: /bin/systemctl start tomcat, /bin/systemctl is-active tomcat ------ 2か4でいいんじゃないの(Claudeの推奨) ------