当我的 Amazon Linux(显然与 Centos 非常相似)EC2 实例启动时,我无法启动 hhvm。当我重新启动服务器时,hhvm 没有出现,错误日志中没有任何内容。当我使用
sudo service hhvm start
它运行正常。停止/重新启动也正常。当我尝试以 ec2-user 身份运行以下命令时
service hhvm start
我收到这些错误
[ec2-user@ip-x ~]$ service hhvm start
Starting hhvm: [Fri Jan 8 22:35:13 2016] [hphp] [2451:7fe8751566c0:0:000001] [] Cannot open log file: /var/log/hhvm/error.log [ OK ]
touch: cannot touch ‘/var/lock/subsys/hhvm’: Permission denied
我删除了 /var/log/hhvm/error.log 并重启了服务器。错误日志里什么都没有。
作为背景,我使用来自 amazon 存储库的“yum install nginx”安装了 hhvm。我使用的是 yum 安装的 /etc/init.d/hhvm。
当 hhvm 由 root 启动后运行时,我可以通过 ps -ef | grep hhvm 获取此信息
[root@ip-x init.d]# service hhvm restart
Stopping hhvm: [ OK ]
Starting hhvm: [ OK ]
[root@ip-x init.d]# ps -ef | grep hhvm
tim 2555 1 3 22:41 ? 00:00:00 hhvm --config /etc/hhvm/server.ini -d pid=/var/run/hhvm.pid --user tim --mode daemon
root 2560 2458 0 22:42 pts/0 00:00:00 grep --color=auto hhvm
nginx 启动正常,有自己的配置文件。hhvm 包是 hhvm-3.6.6-1.amzn1.x86_64。
有什么想法吗?有人能给我提供任何信息吗?我知道启动脚本以 root 身份运行,但以指定的用户身份启动 - 在我的情况下是“tim”。 “tim”是 root 组的成员,我最近尝试修复了这个问题。
我参考这个问题,适用于 Ubuntu。我试过了,但是没用。
这是启动文件/etc/init.d/hhvm
答案1
答案似乎是
/sbin/chkconfig --add hhvm
答案2
对于 CentOS 7,如果您的服务与 SysV 兼容,那么(正如您所发现的)使用chkconfig
,如果它是本机 systemd 服务,则使用systemctl enable
。