我在我的AWS实例的/etc/init/my-project.conf使用以下脚本。
description "start and stop the go program 'my-project'" start on filesystem or runlevel [2345] stop on runlevel [!2345] env USER='ec2-user' env APP_DIR='/home/ec2-user/go/src/bitbucket.com/xxx/my-project/' env APP_EXEC='my-project' exec start-stop-daemon —start —chuid ${USER} —chdir ${APP_DIR} —exec ${APP_DIR}${APP_EXEC}
service my-project start命令给unrecognized service错误。 sudo start my-project启动一个不是我的项目的过程。 当我运行sudo status my-project命令时,我得到了my-project stop/waiting 。 我找不到我做错了什么。
在path/home/ec2-user/go/src/bitbucket.com/xxx/my-project/有一个名为my-project的可执行文件。 所以基本上/home/ec2-user/go/src/bitbucket.com/xxx/my-project/my-project运行可执行文件。
首先,“service”命令用于/etc/init.d中的“System V init脚本”,而不是/ etc / init中的Upstartconfiguration文件。 对于Upstart,你想使用“initctl”。 相当于
$ service --status-all
为Upstart是
$ initctl list
#description "start and stop the go program 'my-project'" start on filesystem or runlevel [2345] stop on runlevel [!2345] script USER='ec2-user' APP_DIR='/home/ec2-user/go/src/bitbucket.com/xxx/my-project/' APP_EXEC='my-project' su - ${USER} -c "exec ${APP_DIR}${APP_EXEC}" end script
如果您对/etc/init/my-project.conf所做的更改不起作用,您可以尝试强制重新加载:
$ initctl reload-configuration
我也能够删除“env”的使用,因为这是不必要的。