我有一个构建服务器。我使用Azure Build Agent脚本。它是一个在服务器启动时连续运行的shell脚本。问题是我似乎无法让它在启动时运行。我已经尝试了/etc/init.d
和/etc/rc.local
,但代理商没有投放。关于启动日志中的构建代理没有任何内容。
对于/etc/init.d
我创建了包含以下内容的脚本agent.sh
#!/bin/bash
sh ~/agent/run.sh
给予适当的权限chmod 755 agent.sh
并将其移至/etc/init.d
。
和/etc/rc.local
,我刚刚添加了以下内容
sh ~/agent/run.sh &
在exit 0
之前。
我做错了什么?
编辑:添加了示例。
编辑2:刚刚注意到init.d README说shell脚本需要以#!/bin/sh
而不是#!/bin/bash
开头。也使用绝对路径,但没有变化。
最终编辑:正如@ewrammer建议的那样,我使用了cron并且它有效。 crontab -e
然后@reboot /home/user/agent/run.sh
。
答案 0 :(得分:2)
如果您没有发布已经完成的内容,很难看出出现了什么问题,但为什么不将它作为一个cron作业添加为@reboot作为模式?然后cron将在每次计算机启动时运行脚本。
答案 1 :(得分:0)
以防万一,使用主管可能是一个好主意,在Ubuntu 14中你没有systemd
但你可以从其他https://en.wikipedia.org/wiki/Process_supervision中选择。
如果使用immortal,则在安装后,您只需在run.yml
中创建一个/etc/immortal
文件,其中包含:
cmd: /path/to/command
log:
file: /var/log/command.log
除了确保您的脚本/应用程序始终正常运行之外,这将在每次启动时启动您的脚本/命令。