Web アプリケーションに http リクエストを送信するときに、nginx をリロードしたいと考えています。そこで、Web アプリケーションのサーブレットで、nginx reload コマンドを実行します。Java コードは次のとおりです: " Runtime.getRuntime().exec("/etc/init.d/nginx reload").waitFor(); ". 私はそれを試しましたが、それは役に立ちません。しかし、root ユーザーとしてサーバーにログインし、上記の Java コードを実行すると、動作します! その理由は、Tomcat ユーザーに nginx をリロードする権限がないためだと思います。tomcat プロセスは、ユーザー tomcat6 として実行されています。nginx マスター プロセスはユーザー root として実行され、nginx ワーカー プロセスはユーザー www-data として実行されます。どうすればこの問題を解決できますか? ありがとう。
私の環境:OS:Ubuntu 10.04 tomcat:6.0.24 nginx:1.2.2。Tomcat と nginx はどちらも、Ubuntu の方法である「apt-get」を介してインストールされます。