start-stop-daemon: matching only on non-root pidfile

Linode 的东京机房访问速度时好时坏,刚好 Google Cloud 送了 300 美元,开了一台香港的 VM,访问速度非常不错,所以就把好久不写的 Blog 也转移过来,免费用上一年再说。

转移时系统选择了 Debian 10,安装了 LNMP 做 Web 和数据库服务,这些都很顺利,最后安装好 mt-starman PSGI 模式 跑 Movable Type 时,运行

/etc/init.d/mt-starman stop
/etc/init.d/mt-starman start

重启 mt-starman 时,系统报

matching only on non-root pidfile /home/wwwroot/run/mt.pid is insecure

从字面意思看,是运行命令的权限问题,打开 /etc/init.d/mt-starman 文件,找到

start-stop-daemon --stop --pidfile $PIDFILE

修改为

start-stop-daemon --stop --pidfile $PIDFILE --user $USER 

原脚本作者用 start-stop-daemonstart 脚本时,用了 --user $USER 参数;stop 时,却忘记了这个参数,导致问题出现,修改后解决。