我想在向Web应用程序发送http请求时重新加载nginx。所以在Web应用程序的servlet中,我执行nginx reload命令。 Java代码是: " Runtime.getRuntime()。exec(" /etc/init.d/nginx reload")。waitFor(); "。我试过了,但没用。但是如果我以root用户身份登录服务器,那么执行上面的Java代码就行了! 所以我想原因是tomcat用户没有权限重新加载nginx。 tomcat进程以用户tomcat6身份运行。 nginx主进程以root用户身份运行,nginx工作进程以用户www-data运行。我怎么能解决这个问题?感谢。
我的环境: 操作系统:Ubuntu 10.04 tomcat:6.0.24 nginx:1.2.2。 Tomcat和nginx都是通过Ubuntu" apt-get"安装的。
答案 0 :(得分:0)
您可以使用sudo
命令。您也可以向tomcat用户授予相应的权限。您还可以执行su
将用户更改为具有相应权限的用户,然后执行nginx重新加载。实际上有很多不同的方法来解决这个问题
我认为编写和测试一些可以从tomcat用户会话重新加载nginx并使用它来重新加载而不是/etc/init.d/nginx reload
命令的脚本会更好。