This is an init.d service file for openwrt.
To deploy:
Copy skirk executable in /usr/local/bin and make it executable:
chmod +x /usr/local/bin/skirk
Then copy the service unit file to /etc/init.d/:
scp skirk root@192.168.1.1:/etc/init.d/skirk
ssh root@192.168.1.1 'chmod +x /etc/init.d/skirk && /etc/init.d/skirk enable && /etc/init.d/skirk start'
# check logs
logread -e skirk
#!/bin/sh /etc/rc.common
# OpenWrt procd init script for Skirk
# Place at: /etc/init.d/skirk
# Make executable: chmod +x /etc/init.d/skirk
# Enable on boot: /etc/init.d/skirk enable
# Start now: /etc/init.d/skirk start
USE_PROCD=1
START=99
STOP=10
NAME="skirk"
BINARY="/usr/local/bin/skirk"
# Paste your full skirk:... URI here
SKIRK_URI="skirk:XXXXXXXXX"
LISTEN_ADDR="0.0.0.0:18080"
CLIENT_ID="openwrt-router"
ROUTE_MODE="google_front"
POLL_MS="800"
# Optional extras (leave empty to disable)
UPSTREAM_PROXY=""
HTTP_PROXY_LISTEN=""
validate_config() {
[ -f "$BINARY" ] || { logger -t "$NAME" "Binary not found: $BINARY"; return 1; }
[ -x "$BINARY" ] || { logger -t "$NAME" "Binary not executable: $BINARY"; return 1; }
case "$SKIRK_URI" in
skirk:*) ;;
*) logger -t "$NAME" "SKIRK_URI does not look like a skirk: URI"; return 1 ;;
esac
return 0
}
start_service() {
validate_config || return 1
logger -t "$NAME" "Starting Skirk client (listen: $LISTEN_ADDR)"
procd_open_instance
procd_set_param command "$BINARY" serve-client \
--config "$SKIRK_URI" \
--listen "$LISTEN_ADDR" \
--client-id "$CLIENT_ID" \
--route-mode "$ROUTE_MODE" \
--poll-ms "$POLL_MS"
[ -n "$UPSTREAM_PROXY" ] && procd_append_param command --upstream-proxy "$UPSTREAM_PROXY"
[ -n "$HTTP_PROXY_LISTEN" ] && procd_append_param command --http-proxy-listen "$HTTP_PROXY_LISTEN"
# Restart on crash (3 retries, 5s delay)
procd_set_param respawn 3600 5 3
procd_set_param stdout 1
procd_set_param stderr 1
procd_close_instance
}
stop_service() {
logger -t "$NAME" "Stopping Skirk"
}
service_triggers() {
procd_add_reload_trigger "network"
}
reload_service() {
stop
start
}
This is an init.d service file for openwrt.
To deploy:
Copy skirk executable in /usr/local/bin and make it executable:
chmod +x /usr/local/bin/skirkThen copy the service unit file to /etc/init.d/: