我正在使用 update-rc.d 在 Ubuntu 中添加启动脚本。
我的脚本说:
#!/bin/bash
nohup curl -C - -o ~/Downloads/linuxmint-17-xfce-dvd-64bit.iso.part 'http://mirror.umd.edu/linuxmint/images/stable/17/linuxmint-17-xfce-dvd-64bit.iso'
exit
使其可执行并添加到 /etc/init.d 中
现在,当我手动运行脚本时,它运行得非常好。
但是添加启动后,并没有自动启动。
它在 nohup.out 中向我抛出错误,如下所示:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0curl: (7) Couldn't connect to server
还有什么我需要检查的,或者我可以使用什么其他选项在启动时运行相同的脚本。
root@amol-Lenovo-G570:~# ll /etc/rc2.d/ total 20
drwxr-xr-x 2 root root 4096 Nov 7 20:24 ./
drwxr-xr-x 179 root root 12288 Nov 7 19:36 ../
lrwxrwxrwx 1 root root 32 Oct 23 12:38 K08vmware-USBArbitrator -> /etc/init.d/vmware-USBArbitrator*
lrwxrwxrwx 1 root root 20 Sep 26 2012 S19postgresql -> ../init.d/postgresql*
lrwxrwxrwx 1 root root 21 Nov 7 20:24 S20download.sh -> ../init.d/download.sh*
其中 download.sh 是我正在运行的脚本。
答案1
问题很简单。您的网络甚至还没有启动,所以:
Couldn't connect to server
我将创建一个 upstart/systemd 或一个真正的 sysv-init 脚本,并依赖于网络。
有多种方法可以实现此目的:
- 与暴发户
- 与系统
- Sysv 初始化脚本在很多方面都更复杂,但如果你想要可移植性,这可能是一个不错的选择。
答案2
只需添加一个--retry 5 --retry-max-time 120
,它最终就会正常工作。