': No such file or directory.common

Viewed 29

I'm trying to execute a simple script at boot time in OpenWrt. For first, I created a file my_script in /etc/init.d:

#!/bin/sh /etc/rc.common
# Example script
# Copyright (C) 2007 OpenWrt.org
 
START=10
STOP=15
 
start() {        
        echo start
        # commands to launch application
}                 
 
stop() {          
        echo stop
        # commands to kill application 
}

Then:

chmod +x /etc/init.d/my_script 
/etc/init.d/my_script enable

And after the enable I receive the error:

root@OpenWrt:/etc/init.d# /etc/init.d/my_script enable
': No such file or directory.common

Why is this happening? This is rc.common. I'm quite sure the script is correct, because I tried also other scripts

`#!/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() {
    restart
}

restart() {
    trap '' TERM
    stop "$@"
    trap - TERM
    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() {
    err=1
    name="$(basename "${initscript}")"
    [ "$START" ] && \
        ln -sf "../init.d/$name" "$IPKG_INSTROOT/etc/rc.d/S${START}${name##S[0-9][0-9]}" && \
        err=0
    [ "$STOP" ] && \
        ln -sf "../init.d/$name" "$IPKG_INSTROOT/etc/rc.d/K${STOP}${name##K[0-9][0-9]}" && \
        err=0
    return $err
}

enabled() {
    name="$(basename "${initscript}")"
    [ -x "$IPKG_INSTROOT/etc/rc.d/S${START}${name##S[0-9][0-9]}" ]
}

depends() {
    return 0
}

ALL_HELP=""
ALL_COMMANDS="boot shutdown depends"
extra_command() {
    local cmd="$1"
    local help="$2"

    local extra="$(printf "%-16s%s" "${cmd}" "${help}")"
    ALL_HELP="${ALL_HELP}\t${extra}\n"
    ALL_COMMANDS="${ALL_COMMANDS} ${cmd}"
}

help() {
    cat <<EOF
Syntax: $initscript [command]

Available commands:
EOF
    echo -e "$ALL_HELP"
}

# for procd
start_service() {
    return 0
}

stop_service() {
    return 0
}

service_triggers() {
    return 0
}

service_data() {
    return 0
}

service_running() {
    local instance="${1:-*}"

    procd_running "$(basename $initscript)" "$instance"
}

${INIT_TRACE:+set -x}

extra_command "start" "Start the service"
extra_command "stop" "Stop the service"
extra_command "restart" "Restart the service"
extra_command "reload" "Reload configuration files (or restart if service does not implement reload)"
extra_command "enable" "Enable service autostart"
extra_command "disable" "Disable service autostart"
extra_command "enabled" "Check if service is started on boot"

. "$initscript"

[ -n "$USE_PROCD" ] && {
    extra_command "running" "Check if service is running"
    extra_command "status" "Service status"
    extra_command "trace" "Start with syscall trace"

    . $IPKG_INSTROOT/lib/functions/procd.sh
    basescript=$(readlink "$initscript")
    rc_procd() {
        local method="set"
        [ -n "$2" ] && method="add"
        procd_open_service "$(basename ${basescript:-$initscript})" "$initscript"
        "$@"
        procd_close_service "$method"
    }

    start() {
        rc_procd start_service "$@"
        if eval "type service_started" 2>/dev/null >/dev/null; then
            service_started
        fi
    }

    trace() {
        TRACE_SYSCALLS=1
        start "$@"
    }

    stop() {
        procd_lock
        stop_service "$@"
        procd_kill "$(basename ${basescript:-$initscript})" "$1"
        if eval "type service_stopped" 2>/dev/null >/dev/null; then
            service_stopped
        fi
    }

    reload() {
        if eval "type reload_service" 2>/dev/null >/dev/null; then
            procd_lock
            reload_service "$@"
        else
            start
        fi
    }

    running() {
        service_running "$@"
    }

    status() {
        if eval "type status_service" 2>/dev/null >/dev/null; then
            status_service "$@"
        else
            _procd_status "$(basename ${basescript:-$initscript})" "$1"
        fi
    }
}

ALL_COMMANDS="${ALL_COMMANDS} ${EXTRA_COMMANDS}"
ALL_HELP="${ALL_HELP}${EXTRA_HELP}"
list_contains ALL_COMMANDS "$action" || action=help
$action "$@"
`
0 Answers
Related