我想在启动时延迟启动服务。Ubuntu Server 15.10
我已经创建了文件 /startup-tvheadend.sh (chmod +x)
/bin/bash #!/bin/bash 睡眠 20 && 服务 tvheadend 启动;
然后在 crontab -e
@reboot/startup-tvheadend.sh
以 sudo 方式运行脚本是可行的,但是当我重新启动时计算机。我已禁用安装后的默认自动启动。
kidkic@TvHeadEnd:~$ systemctl status tvheadend ● tvheadend.service - (空) 已加载:已加载(/etc/init.d/tvheadend) 活跃:不活跃(死亡) 文档:man:systemd-sysv-generator(8)
答案1
由于您正在使用systemctl status tvheadend
,我猜您还应该使用 systemdsystemctl
而不是 upstart 的service
命令来启动此服务:
#!/bin/bash
sleep 20 && systemctl start tvheadend;
答案2
在 systemd 配置文件中添加 sleep 更简单。例如,为了延迟 bind9 启动,我们可以编辑(在 Ubuntu 16.04 上)/lib/systemd/system/bind9.service并添加执行开始前命令。(见https://www.digitalocean.com/community/tutorials/understanding-systemd-units-and-unit-files)
[Service]
ExecStartPre=-/bin/sleep 5
EnvironmentFile=/etc/default/bind9