如何制作一个通过Web服务器接受命令的Linux服务?

Joh*_*ski 4 php linux service background-process background-service

我需要一个应用程序在我的Web服务器上在后台运行,但我需要能够以root权限启动/停止应用程序.

为了做到这一点,我希望运行具有root权限的服务,以便它可以终止应用程序,并在需要时再次启动它.

最后,我需要能够通过Apache/PHP向服务发送start和kill命令,以便可以通过Web间接控制它.

如何创建Linux服务?
如何以这种方式与Linux服务通信?

提前致谢!

Lar*_*y K 6

使用PHP脚本中的exec命令来调用shell文件.shell文件可以使用"setuser"位设置,因此它将作为其所有者运行(而不是使用Web服务器的权限运行).

当然,你需要非常小心 - 大量的测试,监控等.

最后,考虑作为专用用户运行的服务,而不是root用户.例如apache和大多数其他做得好的服务.

补充:Re:在Linux中运行服务.取决于你的Linux风格.如果您想确保您的应用服务失败时会自动重新启动,加上日志记录,结帐Runit:

https://web.archive.org/web/1/http://blogs.techrepublic%2ecom%2ecom/opensource/?p=202

http://smarden.org/runit

补充:我认为Frank使用sudo系统的建议(评论中)更好,而不是setuid位.

  • 您可以添加规则以允许将脚本执行到/ etc/sudoers,而不是setuser位,例如:apache ALL =(root)NOPASSWD:/bin/my.restart.script.sh - 那么您只需exec( 'sudo /bin/my.restart.script.sh'); (4认同)