Widy/Startup Services
From charlesreid1
Here's a great page with information about the Widy slider switch, LEDs, etc: https://wiki.openwrt.org/toh/tp-link/tl-mr3040
Contents
Creating Startup Services
The OpenWrt operating system uses the /etc/init.d/
directory to store a bunch of scripts to run on boot. You can also find a sample startup script
Where Startup Services Go
If you want something to run on the Widy on boot, you can put it in /etc/init.d/
.
You will see, when you look inside that directory, that there are already a bunch of scripts:
root@OpenWrt:/etc/init.d# ls -l -rwxr-xr-x 1 root root 1411 Sep 20 2014 boot -rwxr-xr-x 1 root root 729 Oct 1 2014 cron -rwxr-xr-x 1 root root 14350 Oct 1 2014 dnsmasq -rwxr-xr-x 1 root root 252 Sep 20 2014 done -rwxr-xr-x 1 root root 4153 Oct 1 2014 dropbear -rwxr-xr-x 1 root root 997 Oct 1 2014 firewall -rwxr-xr-x 1 root root 341 Sep 20 2014 fstab -rwxr-xr-x 1 root root 2025 Sep 20 2014 led -rwxr-xr-x 1 root root 2169 Oct 1 2014 log -rwxr-xr-x 1 root root 2742 Sep 20 2014 network -rwxr-xr-x 1 root root 244 Oct 1 2014 odhcpd -rwxr-xr-x 1 root root 422 Sep 23 2014 snort -rwxr-xr-x 1 root root 125 Sep 20 2014 sysctl -rwxr-xr-x 1 root root 247 Sep 20 2014 sysfixtime -rwxr-xr-x 1 root root 770 Oct 1 2014 sysntpd -rwxr-xr-x 1 root root 1025 Sep 20 2014 system -rwxr-xr-x 1 root root 926 Oct 1 2014 telnet -rwxr-xr-x 1 root root 3444 Oct 1 2014 uhttpd -rwxr-xr-x 1 root root 106 Sep 20 2014 umount
Sample Startup Script
There's a nice sample startup script in /etc/rc.common
:
#!/bin/sh # Copyright (C) 2006-2012 OpenWrt.org . $IPKG_INSTROOT/lib/functions.sh . $IPKG_INSTROOT/lib/functions/service.sh initscript=$1 action=${2:-help} shift 2 start() { return 0 } stop() { return 0 } reload() { return 1 } restart() { trap '' TERM stop "$@" start "$@" } boot() { start "$@" } shutdown() { stop } disable() { name="$(basename "${initscript}")" rm -f "$IPKG_INSTROOT"/etc/rc.d/S??$name rm -f "$IPKG_INSTROOT"/etc/rc.d/K??$name } enable() { name="$(basename "${initscript}")" disable [ -n "$START" -o -n "$STOP" ] || { echo "/etc/init.d/$name does not have a START or STOP value" return 1 } [ "$START" ] && ln -s "../init.d/$name" "$IPKG_INSTROOT/etc/rc.d/S${START}${name##S[0-9][0-9]}" [ "$STOP" ] && ln -s "../init.d/$name" "$IPKG_INSTROOT/etc/rc.d/K${STOP}${name##K[0-9][0-9]}" } enabled() { name="$(basename "${initscript}")" [ -x "$IPKG_INSTROOT/etc/rc.d/S${START}${name##S[0-9][0-9]}" ] } depends() { return 0 } help() { cat <<EOF Syntax: $initscript [command] Available commands: start Start the service stop Stop the service restart Restart the service reload Reload configuration files (or restart if that fails) enable Enable service autostart disable Disable service autostart $EXTRA_HELP EOF } # for procd start_service() { return 0 } stop_service() { return 0 } service_triggers() { return 0 } service_running() { return 0 } ${INIT_TRACE:+set -x} . "$initscript" [ -n "$USE_PROCD" ] && { EXTRA_COMMANDS="${EXTRA_COMMANDS} running" . $IPKG_INSTROOT/lib/functions/procd.sh basescript=$(readlink "$initscript") rc_procd() { procd_open_service "$(basename ${basescript:-$initscript})" "$initscript" "$@" procd_close_service } start() { rc_procd start_service "$@" if eval "type service_started" 2>/dev/null >/dev/null; then service_started fi } stop() { stop_service "$@" procd_kill "$(basename ${basescript:-$initscript})" "$1" } reload() { if eval "type reload_service" 2>/dev/null >/dev/null; then reload_service "$@" else start fi } running() { service_running "$@" } } ALL_COMMANDS="start stop reload restart boot shutdown enable disable enabled depends ${EXTRA_COMMANDS}" list_contains ALL_COMMANDS "$action" || action=help [ "$action" = "reload" ] && action='eval reload "$@" || restart "$@" && :' $action "$@" |
Flags
Widy running OpenWRT on a router to make it into a wearable wireless ear
The Widy Device: Widy installation: Widy/Installing · Widy/Redux Widy Wireless Internet Gateway: Widy/Wireless Gateway Widy Ethernet Internet Gateway: Widy/Ethernet Gateway Widy post-installation: Widy/Post-Install Widy configuration: Widy/Configuration
Using tools on the Widy: Widy/Toolbox Using tcpdump on Widy: Widy/Tcpdump Using aircrack on Widy: Widy/Aircrack Python/Scapy on Widy: Widy/Scapy
Scripting the slider button on the Widy: Widy/Configuration#Slider Button Configuration Using widy as a wireless access point: Widy/Access_Point Debugging some SSH problems: Widy/Access_Point/SSH Bridging widy wireless and ethernet connections: Widy/Bridging Widy startup services: Widy/Startup Services Create a hard-wired serial/TTL connection: Widy/Serial
|