#!/bin/sh ### BEGIN INIT INFO # Provides: samba # Required-Start: # Required-Stop: # Default-Start: # Default-Stop: # Short-Description: ensure Samba daemons are started (nmbd and smbd) ### END INIT INFO set -e # start nmbd, smbd and samba-ad-dc unconditionally # the init scripts themselves check if they are needed or not matchstr $1 { start { /etc/init.d/nmbd start /etc/init.d/smbd start /etc/init.d/samba-ad-dc start } stop { /etc/init.d/samba-ad-dc stop /etc/init.d/smbd stop /etc/init.d/nmbd stop } reload { /etc/init.d/smbd reload } restart|force-reload { /etc/init.d/nmbd $1 /etc/init.d/smbd $1 /etc/init.d/samba-ad-dc $1 } status { global status := '0' global NMBD_DISABLED := $[testparm -s --parameter-name='disable netbios' !2 >/dev/null || true] global SERVER_ROLE := $[samba-tool testparm --parameter-name="server role" !2 >/dev/null | tail -1 || true] if test $SERVER_ROLE != "active directory domain controller" { if test $NMBD_DISABLED != "Yes" { /etc/init.d/nmbd status || global status := $Status } /etc/init.d/smbd status || global status := $Status } else { /etc/init.d/samba-ad-dc status || global status := $Status } exit $status } * { echo "Usage: /etc/init.d/samba {start|stop|reload|restart|force-reload|status}" exit 1 } } (CommandList children: [ (C {(set)} {(-e)}) (Case to_match: {($ VSub_Number "$1")} arms: [ (case_arm pat_list: [{(start)}] action: [ (C {(/etc/init.d/nmbd)} {(start)}) (C {(/etc/init.d/smbd)} {(start)}) (C {(/etc/init.d/samba-ad-dc)} {(start)}) ] spids: [47 48 66 -1] ) (case_arm pat_list: [{(stop)}] action: [ (C {(/etc/init.d/samba-ad-dc)} {(stop)}) (C {(/etc/init.d/smbd)} {(stop)}) (C {(/etc/init.d/nmbd)} {(stop)}) ] spids: [69 70 88 -1] ) (case_arm pat_list: [{(reload)}] action: [(C {(/etc/init.d/smbd)} {(reload)})] spids: [91 92 100 -1] ) (case_arm pat_list: [{(restart)} {(force-reload)}] action: [ (C {(/etc/init.d/nmbd)} {(DQ ($ VSub_Number "$1"))}) (C {(/etc/init.d/smbd)} {(DQ ($ VSub_Number "$1"))}) (C {(/etc/init.d/samba-ad-dc)} {(DQ ($ VSub_Number "$1"))}) ] spids: [103 106 130 -1] ) (case_arm pat_list: [{(status)}] action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:status) op:Equal rhs:{(0)} spids:[137])] spids: [137] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:NMBD_DISABLED) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (AndOr children: [ (SimpleCommand words: [ {(testparm)} {(-s)} {(--parameter-name) (Lit_Other "=") (SQ <"disable netbios">)} ] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [153] ) ] ) (C {(true)}) ] op_id: Op_DPipe ) ] ) left_token: spids: [142 159] ) } spids: [141] ) ] spids: [141] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SERVER_ROLE) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (AndOr children: [ (Pipeline children: [ (SimpleCommand words: [ {(samba-tool)} {(testparm)} {(--parameter-name) (Lit_Other "=") (DQ ("server role"))} ] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [174] ) ] ) (C {(tail)} {(-1)}) ] negated: False ) (C {(true)}) ] op_id: Op_DPipe ) ] ) left_token: spids: [163 186] ) } spids: [162] ) ] spids: [162] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$SERVER_ROLE"))} {(KW_Bang "!") (Lit_Other "=")} {(DQ ("active directory domain controller"))} {(Lit_Other "]")} ) terminator: ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$NMBD_DISABLED"))} {(KW_Bang "!") (Lit_Other "=")} {(DQ (Yes))} {(Lit_Other "]")} ) terminator: ) ] action: [ (AndOr children: [ (C {(/etc/init.d/nmbd)} {(status)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:status) op: Equal rhs: {($ VSub_QMark "$?")} spids: [237] ) ] spids: [237] ) ] op_id: Op_DPipe ) ] spids: [-1 228] ) ] spids: [-1 241] ) (AndOr children: [ (C {(/etc/init.d/smbd)} {(status)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:status) op: Equal rhs: {($ VSub_QMark "$?")} spids: [250] ) ] spids: [250] ) ] op_id: Op_DPipe ) ] spids: [-1 207] ) ] else_action: [ (AndOr children: [ (C {(/etc/init.d/samba-ad-dc)} {(status)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:status) op: Equal rhs: {($ VSub_QMark "$?")} spids: [263] ) ] spids: [263] ) ] op_id: Op_DPipe ) ] spids: [254 267] ) (C {(exit)} {($ VSub_Name "$status")}) ] spids: [133 134 275 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [ (C {(echo)} {(DQ ("Usage: /etc/init.d/samba {start|stop|reload|restart|force-reload|status}"))} ) (C {(exit)} {(1)}) ] spids: [278 279 294 -1] ) ] spids: [40 44 296] ) ] )