#!/bin/sh -e ### BEGIN INIT INFO # Provides: networking ifupdown # Required-Start: mountkernfs $local_fs urandom # Required-Stop: $local_fs # Default-Start: S # Default-Stop: 0 6 # Short-Description: Raise network interfaces. # Description: Prepare /run/network directory, ifstate file and raise network interfaces, or take them down. ### END INIT INFO global PATH := '"/sbin:/bin'" global RUN_DIR := '"/run/network'" global IFSTATE := ""$RUN_DIR/ifstate"" global STATEDIR := ""$RUN_DIR/state"" test -x /sbin/ifup || exit 0 test -x /sbin/ifdown || exit 0 source /lib/lsb/init-functions global CONFIGURE_INTERFACES := 'yes' global EXCLUDE_INTERFACES := '' global VERBOSE := 'no' test -f /etc/default/networking && source /etc/default/networking global verbose := ''"" test $VERBOSE = yes && global verbose := '-v' proc process_exclusions { set -- $EXCLUDE_INTERFACES global exclusions := ''for d in @Argv { global exclusions := ""-X $d $exclusions"" } echo $exclusions } proc process_options { test -e /etc/network/options || return 0 log_warning_msg "/etc/network/options still exists and it will be IGNORED! Please use /etc/sysctl.conf instead." } proc check_ifstate { if test ! -d $RUN_DIR { if ! mkdir -p $RUN_DIR { log_failure_msg "can't create $RUN_DIR" exit 1 } if ! chown root:netdev $RUN_DIR { log_warning_msg "can't chown $RUN_DIR" } } if test ! -r $IFSTATE { if ! :> $IFSTATE { log_failure_msg "can't initialise $IFSTATE" exit 1 } } } proc check_network_file_systems { test -e /proc/mounts || return 0 if test -e /etc/iscsi/iscsi.initramfs { log_warning_msg "not deconfiguring network interfaces: iSCSI root is mounted." exit 0 } while read DEV MTPT FSTYPE REST { matchstr $DEV { /dev/nbd*|/dev/nd[a-z]*|/dev/etherd/e*|curlftpfs* { log_warning_msg "not deconfiguring network interfaces: network devices still mounted." exit 0 } } matchstr $FSTYPE { nfs|nfs4|smbfs|ncp|ncpfs|cifs|coda|ocfs2|gfs|pvfs|pvfs2|fuse.httpfs|fuse.curlftpfs { log_warning_msg "not deconfiguring network interfaces: network file systems still mounted." exit 0 } } } < /proc/mounts } proc check_network_swap { test -e /proc/swaps || return 0 while read DEV MTPT FSTYPE REST { matchstr $DEV { /dev/nbd*|/dev/nd[a-z]*|/dev/etherd/e* { log_warning_msg "not deconfiguring network interfaces: network swap still mounted." exit 0 } } } < /proc/swaps } proc ifup_hotplug { if test -d /sys/class/net { global ifaces := $[for iface in [$[ifquery --list --allow=hotplug]] { global link := $(iface##:*) global link := $(link##.*) if test -e "/sys/class/net/$link" { # link detection does not work unless we up the link ip link set $iface up || true if test $[cat /sys/class/net/$link/operstate] = up { echo $iface } } }] if test -n $ifaces { ifup $ifaces @Argv || true } } } matchstr $1 { start { if init_is_upstart { exit 1 } process_options check_ifstate if test $CONFIGURE_INTERFACES = no { log_action_msg "Not configuring network interfaces, see /etc/default/networking" exit 0 } set -f global exclusions := $[process_exclusions] log_action_begin_msg "Configuring network interfaces" if test -x /sbin/udevadm { if test -n $[ifquery --list --exclude=lo] || test -n $[ifquery --list --allow=hotplug] { udevadm settle || true } } if ifup -a $exclusions $verbose && ifup_hotplug $exclusions $verbose { log_action_end_msg $Status } else { log_action_end_msg $Status } } stop { if init_is_upstart { exit 0 } check_network_file_systems check_network_swap log_action_begin_msg "Deconfiguring network interfaces" if ifdown -a --exclude=lo $verbose { log_action_end_msg $Status } else { log_action_end_msg $Status } } reload { if init_is_upstart { exit 1 } process_options log_action_begin_msg "Reloading network interfaces configuration" global state := $[ifquery --state] ifdown -a --exclude=lo $verbose || true if ifup --exclude=lo $state $verbose { log_action_end_msg $Status } else { log_action_end_msg $Status } } force-reload|restart { if init_is_upstart { exit 1 } process_options log_warning_msg "Running $0 $1 is deprecated because it may not re-enable some interfaces" log_action_begin_msg "Reconfiguring network interfaces" ifdown -a --exclude=lo $verbose || true set -f global exclusions := $[process_exclusions] if ifup -a --exclude=lo $exclusions $verbose && ifup_hotplug $exclusions $verbose { log_action_end_msg $Status } else { log_action_end_msg $Status } } * { echo "Usage: /etc/init.d/networking {start|stop|reload|restart|force-reload}" exit 1 } } exit 0 # vim: noet ts=8 (CommandList children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:PATH) op:Equal rhs:{(DQ ("/sbin:/bin"))} spids:[31])] spids: [31] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:RUN_DIR) op:Equal rhs:{(DQ (/run/network))} spids:[36])] spids: [36] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:IFSTATE) op: Equal rhs: {(DQ ($ VSub_Name "$RUN_DIR") (/ifstate))} spids: [41] ) ] spids: [41] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:STATEDIR) op: Equal rhs: {(DQ ($ VSub_Name "$RUN_DIR") (/state))} spids: [47] ) ] spids: [47] ) (AndOr children: [(C {(Lit_Other "[")} {(-x)} {(/sbin/ifup)} {(Lit_Other "]")}) (C {(exit)} {(0)})] op_id: Op_DPipe ) (AndOr children: [(C {(Lit_Other "[")} {(-x)} {(/sbin/ifdown)} {(Lit_Other "]")}) (C {(exit)} {(0)})] op_id: Op_DPipe ) (C {(.)} {(/lib/lsb/init-functions)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:CONFIGURE_INTERFACES) op:Equal rhs:{(yes)} spids:[88])] spids: [88] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:EXCLUDE_INTERFACES) op:Equal rhs:{(SQ )} spids:[91])] spids: [91] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:VERBOSE) op:Equal rhs:{(no)} spids:[93])] spids: [93] ) (AndOr children: [ (C {(Lit_Other "[")} {(-f)} {(/etc/default/networking)} {(Lit_Other "]")}) (C {(.)} {(/etc/default/networking)}) ] op_id: Op_DAmp ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:verbose) op:Equal rhs:{(DQ )} spids:[112])] spids: [112] ) (AndOr children: [ (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$VERBOSE"))} {(Lit_Other "=")} {(yes)} {(Lit_Other "]")}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:verbose) op:Equal rhs:{(-v)} spids:[130])] spids: [130] ) ] op_id: Op_DAmp ) (FuncDef name: process_exclusions body: (BraceGroup children: [ (C {(set)} {(--)} {($ VSub_Name "$EXCLUDE_INTERFACES")}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:exclusions) op:Equal rhs:{(DQ )} spids:[148])] spids: [148] ) (ForEach iter_name: d do_arg_iter: True body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:exclusions) op: Equal rhs: {(DQ ("-X ") ($ VSub_Name "$d") (" ") ($ VSub_Name "$exclusions"))} spids: [161] ) ] spids: [161] ) ] spids: [158 170] ) spids: [-1 -1] ) (C {(echo)} {($ VSub_Name "$exclusions")}) ] spids: [138] ) spids: [134 137] ) (FuncDef name: process_options body: (BraceGroup children: [ (AndOr children: [ (C {(Lit_Other "[")} {(-e)} {(/etc/network/options)} {(Lit_Other "]")}) (ControlFlow token: arg_word:{(0)}) ] op_id: Op_DPipe ) (C {(log_warning_msg)} { (DQ ( "/etc/network/options still exists and it will be IGNORED! Please use /etc/sysctl.conf instead." ) ) } ) ] spids: [184] ) spids: [180 183] ) (FuncDef name: check_ifstate body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(KW_Bang "!")} {(-d)} {(DQ ($ VSub_Name "$RUN_DIR"))} {(Lit_Other "]")} ) terminator: ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [(C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$RUN_DIR"))})] negated: True ) terminator: ) ] action: [ (C {(log_failure_msg)} {(DQ ("can't create ") ($ VSub_Name "$RUN_DIR"))}) (C {(exit)} {(1)}) ] spids: [-1 251] ) ] spids: [-1 267] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(chown)} {(root) (Lit_Other ":") (netdev)} {(DQ ($ VSub_Name "$RUN_DIR"))} ) ] negated: True ) terminator: ) ] action: [ (C {(log_warning_msg)} {(DQ ("can't chown ") ($ VSub_Name "$RUN_DIR"))}) ] spids: [-1 286] ) ] spids: [-1 297] ) ] spids: [-1 234] ) ] spids: [-1 300] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(KW_Bang "!")} {(-r)} {(DQ ($ VSub_Name "$IFSTATE"))} {(Lit_Other "]")} ) terminator: ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (SimpleCommand words: [{(Lit_Other ":")}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name "$IFSTATE"))} spids: [327] ) ] ) ] negated: True ) terminator: ) ] action: [ (C {(log_failure_msg)} {(DQ ("can't initialise ") ($ VSub_Name "$IFSTATE"))}) (C {(exit)} {(1)}) ] spids: [-1 335] ) ] spids: [-1 351] ) ] spids: [-1 319] ) ] spids: [-1 354] ) ] spids: [215] ) spids: [211 214] ) (FuncDef name: check_network_file_systems body: (BraceGroup children: [ (AndOr children: [ (C {(Lit_Other "[")} {(-e)} {(/proc/mounts)} {(Lit_Other "]")}) (ControlFlow token: arg_word:{(0)}) ] op_id: Op_DPipe ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(-e)} {(/etc/iscsi/iscsi.initramfs)} {(Lit_Other "]")}) terminator: ) ] action: [ (C {(log_warning_msg)} {(DQ ("not deconfiguring network interfaces: iSCSI root is mounted."))} ) (C {(exit)} {(0)}) ] spids: [-1 393] ) ] spids: [-1 408] ) (While cond: [ (Sentence child: (C {(read)} {(DEV)} {(MTPT)} {(FSTYPE)} {(REST)}) terminator: ) ] body: (DoGroup children: [ (Case to_match: {($ VSub_Name "$DEV")} arms: [ (case_arm pat_list: [ {(/dev/nbd) (Lit_Other "*")} {(/dev/nd) (Lit_Other "[") (a-z) (Lit_Other "]") (Lit_Other "*")} {(/dev/etherd/e) (Lit_Other "*")} {(curlftpfs) (Lit_Other "*")} ] action: [ (C {(log_warning_msg)} { (DQ ( "not deconfiguring network interfaces: network devices still mounted." ) ) } ) (C {(exit)} {(0)}) ] spids: [435 449 464 -1] ) ] spids: [428 432 467] ) (Case to_match: {($ VSub_Name "$FSTYPE")} arms: [ (case_arm pat_list: [ {(nfs)} {(nfs4)} {(smbfs)} {(ncp)} {(ncpfs)} {(cifs)} {(coda)} {(ocfs2)} {(gfs)} {(pvfs)} {(pvfs2)} {(fuse.httpfs)} {(fuse.curlftpfs)} ] action: [ (C {(log_warning_msg)} { (DQ ( "not deconfiguring network interfaces: network file systems still mounted." ) ) } ) (C {(exit)} {(0)}) ] spids: [477 502 517 -1] ) ] spids: [470 474 520] ) ] spids: [425 523] ) redirects: [(Redir op_id:Redir_Less fd:-1 arg_word:{(/proc/mounts)} spids:[525])] ) ] spids: [363] ) spids: [359 362] ) (FuncDef name: check_network_swap body: (BraceGroup children: [ (AndOr children: [ (C {(Lit_Other "[")} {(-e)} {(/proc/swaps)} {(Lit_Other "]")}) (ControlFlow token: arg_word:{(0)}) ] op_id: Op_DPipe ) (While cond: [ (Sentence child: (C {(read)} {(DEV)} {(MTPT)} {(FSTYPE)} {(REST)}) terminator: ) ] body: (DoGroup children: [ (Case to_match: {($ VSub_Name "$DEV")} arms: [ (case_arm pat_list: [ {(/dev/nbd) (Lit_Other "*")} {(/dev/nd) (Lit_Other "[") (a-z) (Lit_Other "]") (Lit_Other "*")} {(/dev/etherd/e) (Lit_Other "*")} ] action: [ (C {(log_warning_msg)} { (DQ ( "not deconfiguring network interfaces: network swap still mounted." ) ) } ) (C {(exit)} {(0)}) ] spids: [578 589 604 -1] ) ] spids: [571 575 607] ) ] spids: [568 610] ) redirects: [(Redir op_id:Redir_Less fd:-1 arg_word:{(/proc/swaps)} spids:[612])] ) ] spids: [536] ) spids: [532 535] ) (FuncDef name: ifup_hotplug body: (BraceGroup children: [ (If arms: [ (if_arm cond: [(C {(Lit_Other "[")} {(-d)} {(/sys/class/net)} {(Lit_Other "]")})] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ifaces) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (ForEach iter_name: iface iter_words: [ { (CommandSubPart command_list: (CommandList children: [ (C {(ifquery)} {(--list)} {(--allow) (Lit_Other "=") (hotplug)} ) ] ) left_token: spids: [649 657] ) } ] do_arg_iter: False body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:link) op: Equal rhs: { (BracedVarSub token: suffix_op: (StringUnary op_id: VOp1_DPound arg_word: {(":*")} ) spids: [664 668] ) } spids: [663] ) ] spids: [663] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:link) op: Equal rhs: { (BracedVarSub token: suffix_op: (StringUnary op_id: VOp1_DPound arg_word: {(".*")} ) spids: [672 676] ) } spids: [671] ) ] spids: [671] ) (If arms: [ (if_arm cond: [ (C {(Lit_Other "[")} {(-e)} { (DQ (/sys/class/net/) ($ VSub_Name "$link")) } {(Lit_Other "]")} ) ] action: [ (AndOr children: [ (C {(ip)} {(link)} {(set)} {(DQ ($ VSub_Name "$iface"))} {(up)} ) (C {(true)}) ] op_id: Op_DPipe ) (If arms: [ (if_arm cond: [ (C {(Lit_Other "[")} { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(cat)} {(/sys/class/net/) ($ VSub_Name "$link") (/operstate) } ) ] ) left_token: spids: [722 728] ) ) } {(Lit_Other "=")} {(up)} {(Lit_Other "]")} ) ] action: [ (C {(echo)} {(DQ ($ VSub_Name "$iface"))}) ] spids: [-1 738] ) ] spids: [-1 748] ) ] spids: [-1 693] ) ] spids: [-1 751] ) ] spids: [660 754] ) spids: [648 -1] ) ] ) left_token: spids: [642 755] ) } spids: [641] ) ] spids: [641] ) (If arms: [ (if_arm cond: [ (C {(Lit_Other "[")} {(-n)} {(DQ ($ VSub_Name "$ifaces"))} {(Lit_Other "]")}) ] action: [ (AndOr children: [ (C {(ifup)} {($ VSub_Name "$ifaces")} {(DQ ($ VSub_At "$@"))}) (C {(true)}) ] op_id: Op_DPipe ) ] spids: [-1 771] ) ] spids: [-1 787] ) ] spids: [-1 638] ) ] spids: [-1 790] ) ] spids: [624] ) spids: [619 623] ) (Case to_match: {(DQ ($ VSub_Number "$1"))} arms: [ (case_arm pat_list: [{(start)}] action: [ (If arms: [ (if_arm cond: [(Sentence child:(C {(init_is_upstart)}) terminator:)] action: [(C {(exit)} {(1)})] spids: [-1 812] ) ] spids: [-1 820] ) (C {(process_options)}) (C {(check_ifstate)}) (If arms: [ (if_arm cond: [ (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$CONFIGURE_INTERFACES"))} {(Lit_Other "=")} {(no)} {(Lit_Other "]")} ) ] action: [ (C {(log_action_msg)} {(DQ ("Not configuring network interfaces, see /etc/default/networking"))} ) (C {(exit)} {(0)}) ] spids: [-1 845] ) ] spids: [-1 860] ) (C {(set)} {(-f)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:exclusions) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(process_exclusions)})]) left_token: spids: [869 871] ) } spids: [868] ) ] spids: [868] ) (C {(log_action_begin_msg)} {(DQ ("Configuring network interfaces"))}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(-x)} {(/sbin/udevadm)} {(Lit_Other "]")}) terminator: ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (AndOr children: [ (C {(Lit_Other "[")} {(-n)} { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(ifquery)} {(--list)} {(--exclude) (Lit_Other "=") (lo)} ) ] ) left_token: spids: [902 910] ) ) } {(Lit_Other "]")} ) (C {(Lit_Other "[")} {(-n)} { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(ifquery)} {(--list)} {(--allow) (Lit_Other "=") (hotplug)} ) ] ) left_token: spids: [922 930] ) ) } {(Lit_Other "]")} ) ] op_id: Op_DPipe ) terminator: ) ] action: [ (AndOr children: [(C {(udevadm)} {(settle)}) (C {(true)})] op_id: Op_DPipe ) ] spids: [-1 936] ) ] spids: [-1 948] ) ] spids: [-1 892] ) ] spids: [-1 951] ) (If arms: [ (if_arm cond: [ (AndOr children: [ (C {(ifup)} {(-a)} {($ VSub_Name "$exclusions")} {($ VSub_Name "$verbose")}) (C {(ifup_hotplug)} {($ VSub_Name "$exclusions")} {($ VSub_Name "$verbose")}) ] op_id: Op_DAmp ) ] action: [(C {(log_action_end_msg)} {($ VSub_QMark "$?")})] spids: [-1 973] ) ] else_action: [(C {(log_action_end_msg)} {($ VSub_QMark "$?")})] spids: [981 989] ) ] spids: [803 804 992 -1] ) (case_arm pat_list: [{(stop)}] action: [ (If arms: [ (if_arm cond: [(Sentence child:(C {(init_is_upstart)}) terminator:)] action: [(C {(exit)} {(0)})] spids: [-1 1004] ) ] spids: [-1 1012] ) (C {(check_network_file_systems)}) (C {(check_network_swap)}) (C {(log_action_begin_msg)} {(DQ ("Deconfiguring network interfaces"))}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(ifdown)} {(-a)} {(--exclude) (Lit_Other "=") (lo)} {($ VSub_Name "$verbose")} ) terminator: ) ] action: [(C {(log_action_end_msg)} {($ VSub_QMark "$?")})] spids: [-1 1042] ) ] else_action: [(C {(log_action_end_msg)} {($ VSub_QMark "$?")})] spids: [1050 1058] ) ] spids: [995 996 1061 -1] ) (case_arm pat_list: [{(reload)}] action: [ (If arms: [ (if_arm cond: [(Sentence child:(C {(init_is_upstart)}) terminator:)] action: [(C {(exit)} {(1)})] spids: [-1 1073] ) ] spids: [-1 1081] ) (C {(process_options)}) (C {(log_action_begin_msg)} {(DQ ("Reloading network interfaces configuration"))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:state) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(ifquery)} {(--state)})]) left_token: spids: [1096 1100] ) } spids: [1095] ) ] spids: [1095] ) (AndOr children: [ (C {(ifdown)} {(-a)} {(--exclude) (Lit_Other "=") (lo)} {($ VSub_Name "$verbose")}) (C {(true)}) ] op_id: Op_DPipe ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(ifup)} {(--exclude) (Lit_Other "=") (lo)} {($ VSub_Name "$state")} {($ VSub_Name "$verbose")} ) terminator: ) ] action: [(C {(log_action_end_msg)} {($ VSub_QMark "$?")})] spids: [-1 1132] ) ] else_action: [(C {(log_action_end_msg)} {($ VSub_QMark "$?")})] spids: [1140 1148] ) ] spids: [1064 1065 1151 -1] ) (case_arm pat_list: [{(force-reload)} {(restart)}] action: [ (If arms: [ (if_arm cond: [(Sentence child:(C {(init_is_upstart)}) terminator:)] action: [(C {(exit)} {(1)})] spids: [-1 1165] ) ] spids: [-1 1173] ) (C {(process_options)}) (C {(log_warning_msg)} { (DQ ("Running ") ($ VSub_Number "$0") (" ") ($ VSub_Number "$1") (" is deprecated because it may not re-enable some interfaces") ) } ) (C {(log_action_begin_msg)} {(DQ ("Reconfiguring network interfaces"))}) (AndOr children: [ (C {(ifdown)} {(-a)} {(--exclude) (Lit_Other "=") (lo)} {($ VSub_Name "$verbose")}) (C {(true)}) ] op_id: Op_DPipe ) (C {(set)} {(-f)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:exclusions) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(process_exclusions)})]) left_token: spids: [1219 1221] ) } spids: [1218] ) ] spids: [1218] ) (If arms: [ (if_arm cond: [ (AndOr children: [ (C {(ifup)} {(-a)} {(--exclude) (Lit_Other "=") (lo)} {($ VSub_Name "$exclusions")} {($ VSub_Name "$verbose")} ) (C {(ifup_hotplug)} {($ VSub_Name "$exclusions")} {($ VSub_Name "$verbose")}) ] op_id: Op_DAmp ) ] action: [(C {(log_action_end_msg)} {($ VSub_QMark "$?")})] spids: [-1 1247] ) ] else_action: [(C {(log_action_end_msg)} {($ VSub_QMark "$?")})] spids: [1255 1263] ) ] spids: [1154 1157 1266 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [ (C {(echo)} {(DQ ("Usage: /etc/init.d/networking {start|stop|reload|restart|force-reload}"))} ) (C {(exit)} {(1)}) ] spids: [1269 1270 1285 -1] ) ] spids: [795 801 1287] ) (C {(exit)} {(0)}) ] )