How to auto start an application in openwrt?
If you need to run your command only at system start (just after boot): edit /etc/rc.local that is your file.
By default it contains just comments (Designated Driver, but this was the case in some earlier versions also):
# Put your custom commands here that should be executed once
# the system init finished. By default this file does nothing.
You can add commands here.
My example:
# Put your custom commands here that should be executed once
# the system init finished. By default this file does nothing.
if grep -q '/dev/sdb2' /proc/swaps ; then swapoff /dev/sda2 ; fi
comgt -s /etc/config/init-script.comgt
/etc/init.d/ - directory will by automaticly readed and searching for boot function or START STOP. Starts at boot time.
boot() {
echo boot
# commands to run on boot
}
START-Position then to start
STOP-Position then to stop
START=10
STOP=15
start() {
echo start
# commands to launch application
}
stop() {
echo stop
# commands to kill application
}
EDITED:
In /etc/rc.common directory files are compiled whoes going to start on boot.
Enable your function: /etc/init.d/your_script.sh enable
Here you will find more information about booting http://wiki.openwrt.org/doc/techref/process.boot
Make sure the first line of your script reads:
#!/bin/sh /etc/rc.common
Copy your script to the
/etc/init.d/
directoryMake sure the execute bit is on
chmod +x /etc/init.d/<your script>
Enable your script
/etc/init.d/<your script> enable
Your script should now have a symlink in
/etc/rc.d/
ls -lh /etc/rc.d | grep <your script>
Confirm your init script is enabled:
/etc/init.d/<your script> enabled && echo on
If this command returns
on
, then you're all set. If this command doesn't return anything, then your script isn't enabled. Here's an example of a script that's enabled:root@OpenWrt:~# /etc/init.d/system enabled && echo on on
I've tested these steps on OpenWrt Chaos Calmer 15.05 but it should work on earlier versions. Good luck!