php 执行 passthru 命令,需要 www 获得 sudo 权限:
修改文本
/etc/sudoers
#新增加这一行,为www用户设置sudo不需要验证密码
www ALL=(ALL) NOPASSWD:ALL
php 设置中,把禁用的 passthru 从列表删除
举个重启的例子
$selName='test01';
$cmd_str = 'sudo /www/server/panel/pyenv/bin/supervisorctl restart %s:%s_00';
$command = sprintf($cmd_str,$selName,$selName);
ob_start();
passthru($command);
$std = ob_get_contents();
ob_end_clean();
if($std && strpos(started)){
echo $std;
echo "重新启动{$selName}成功!";
}
其它的一些操作
systemctl enable supervisord # 开机自启动
systemctl start supervisord # 启动supervisord服务
# systemctl status supervisord # 查看supervisord服务状态
# systemctl restart supervisord
supervisorctl (命令管理工具)
/www/server/panel/pyenv/bin/supervisorctl help
default commands (type help ):
=====================================
add exit open reload restart start tail
avail fg pid remove shutdown status update
clear maintail quit reread signal stop version
/www/server/panel/pyenv/bin/supervisorctl status
重启格式
supervisorctl restart name;
例子
/www/server/panel/pyenv/bin/supervisorctl restart test01:test01_00
/www/server/panel/pyenv/bin/supervisorctl restart all
其它start和stop类同
Supervisor 监控
在设置里面去掉注释、
[inet_http_server]
port=127.0.0.1:9001 ;IP按需配置
username=user
password=123