在Ubuntu 14.04

时间:2018-06-11 07:55:54

标签: shell ubuntu-14.04 startup

我有一个构建服务器。我使用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

2 个答案:

答案 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

除了确保您的脚本/应用程序始终正常运行之外,这将在每次启动时启动您的脚本/命令。