如何在Ubuntu上使用Apache2启动/停止服务

使用Apache,我希望能够在同一台服务器上启动和停止服务。 本质上,我正在寻找一种方法来允许Apache(或由Apache调用的某个脚本)调用sudo service XXXX start

我意识到这有严重的安全隐患,我正在寻求尽可能减less可能的影响。 只有一个服务,我需要做到这一点。 我已经看到了一些解决scheme,涉及“黑客” setuid (C / Perl的包装),其他涉及编辑/etc/sudoers文件。

有没有更好的办法?

非常感谢,S.

我build议让www-data-user将这个init.d-script作为sudo使用,而不需要密码,只需将它添加到/ etc / sudoers

 www-data ALL=(ALL) NOPASSWD: /etc/init.d/theinitscript 

然后使用sudo /etc/init.d/theinitscript start来代替命令服务。