1. 程式人生 > >Openwrt下設定程式開機自動啟動

Openwrt下設定程式開機自動啟動

轉自http://www.cnyubin.com/?p=364

今天在使用Openwrt時,需要將scp到上面的程式設定為開機自動啟動。按照Linux下設定自動啟動的方法並不有效。後來在官方wiki下發現了介紹文章,具體可見Openwrt下http://wiki.openwrt.org/doc/techref/initscripts

1. 在/etc/init.d/中按照以下格式編寫shell指令碼

1
2
3
4
5
6
7
8
9
10
11
12
13
#!/bin/sh /etc/rc.common
START=99
STOP=15
 
start() {
  echo start
  #commands to launch application, such as above
}
 
stop() {
  echo stop
  #commands to kill application
}

以上便是一份在自啟動的shell指令碼模板。在start方法中寫入執行程式的命令,而stop方法中寫入終止程式執行的命令即可。在上面的程式碼中,第一行稱為shebang line,它使用/etc/rc.common指令碼作為包裝器。第二行和第三行的START=99, STOP=15指的是優先順序,優先順序的指令碼會先執行。數字越大,優先順序越低。

2. 當前僅有上面的指令碼是不夠的。我們還需要以下的命令
1)使用chmod命令將指令碼變為可執行指令碼:chmod +x xxx
2) 使用xxx enable使得指令碼開機自啟動。其中,xxx為前面編寫的指令碼檔名。

xxx enable的命令實質上是為指令碼檔案建立一個軟連結,軟連結存放於/etc/rc.d/下,如果我們不想使用rc.common的enable命令也可以,我們可以自己建立連結。
3)通過以上的步驟就可以建立程式自啟動指令碼,將程式設定為自啟動。

3. 另外,如果在開機boot期間,需要執行程式,我們可以使用boot方法。使用方法類似於start方法和stop方法。