在 Amazon Linux 服务器启动时自动启动 HHVM

在 Amazon Linux 服务器启动时自动启动 HHVM

当我的 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

相关内容