(command.CommandList children: [ (command.ShFunction name: unmount_devpts body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(mountpoint)} {(-q)} {(/dev/pts/)}) terminator: (Token id:Id.Op_Semi val:';' span_id:45) ) ] action: [(C {(umount)} {(-n)} {(-l)} {(/dev/pts/)})] spids: [38 47] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(mountpoint)} {(-q)} {(/dev/shm/)}) terminator: (Token id:Id.Op_Semi val:';' span_id:70) ) ] action: [(C {(umount)} {(-n)} {(-l)} {(/dev/shm/)})] spids: [63 72] ) ] ) ] ) ) (command.ShFunction name: mount_devtmpfs body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(grep)} {(-E)} {(-q)} {(DQ ('^[^[:space:]]+ /dev devtmpfs'))} {(/proc/mounts)}) terminator: (Token id:Id.Op_Semi val:';' span_id:112) ) ] action: [ (C {(mount)} {(-n)} {(-o)} {(remount) (Id.Lit_Comma ',') (nosuid) (Id.Lit_Comma ',') (Id.Lit_VarLike 'size=') ($ Id.VSub_DollarName '$tmpfs_size') (Id.Lit_Comma ',') (Id.Lit_VarLike 'mode=') (0755) } {(-t)} {(devtmpfs)} {(devtmpfs)} {(/dev)} ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:142) ) ] spids: [99 114] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [ (C {(mount)} {(-n)} {(-o)} {(nosuid) (Id.Lit_Comma ',') (Id.Lit_VarLike 'size=') ($ Id.VSub_DollarName '$tmpfs_size') (Id.Lit_Comma ',') (Id.Lit_VarLike 'mode=') (0755) } {(-t)} {(devtmpfs)} {(devtmpfs)} {(/dev)} ) ] negated: T ) terminator: (Token id:Id.Op_Semi val:';' span_id:174) ) ] action: [ (C {(log_failure_msg)} {(DQ ('udev requires devtmpfs support, not started'))}) (C {(log_end_msg)} {(1)}) ] spids: [149 176] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:195) arg_word: {(0)} ) ] ) ) (command.ShFunction name: create_dev_makedev body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-e)} {(/sbin/MAKEDEV)} {(Id.Lit_RBracket ']')}) terminator: (Token id:Id.Op_Semi val:';' span_id:218) ) ] action: [(C {(ln)} {(-sf)} {(/sbin/MAKEDEV)} {(/dev/MAKEDEV)})] spids: [209 220] ) ] else_action: [(C {(ln)} {(-sf)} {(/bin/true)} {(/dev/MAKEDEV)})] ) ] ) ) (command.ShFunction name: supported_kernel body: (command.BraceGroup children: [ (command.Case to_match: { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:259) command_list: (command.CommandList children:[(C {(uname)} {(-r)})]) ) ) } arms: [ (case_arm pat_list: [ {(2.) (Id.Lit_LBracket '[') (012345) (Id.Lit_RBracket ']') (.) (Id.Lit_Star '*')} {(2.6.) (Id.Lit_LBracket '[') (0-9) (Id.Lit_RBracket ']')} {(2.6.) (Id.Lit_LBracket '[') (0-9) (Id.Lit_RBracket ']') (Id.Lit_LBracket '[') (Id.KW_Bang '!') (0-9) (Id.Lit_RBracket ']') (Id.Lit_Star '*') } ] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:292) arg_word: {(1)} ) ] spids: [269 290 296 -1] ) (case_arm pat_list: [ {(2.6.) (Id.Lit_LBracket '[') (12) (Id.Lit_RBracket ']') (Id.Lit_LBracket '[') (0-9) (Id.Lit_RBracket ']') } {(2.6.) (Id.Lit_LBracket '[') (12) (Id.Lit_RBracket ']') (Id.Lit_LBracket '[') (0-9) (Id.Lit_RBracket ']') (Id.Lit_LBracket '[') (Id.KW_Bang '!') (0-9) (Id.Lit_RBracket ']') (Id.Lit_Star '*') } ] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:321) arg_word: {(1)} ) ] spids: [299 319 325 -1] ) (case_arm pat_list: [ {(2.6.3) (Id.Lit_LBracket '[') (0-1) (Id.Lit_RBracket ']')} {(2.6.3) (Id.Lit_LBracket '[') (0-1) (Id.Lit_RBracket ']') (Id.Lit_LBracket '[') (Id.KW_Bang '!') (0-9) (Id.Lit_RBracket ']') (Id.Lit_Star '*') } ] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:344) arg_word: {(1)} ) ] spids: [328 342 348 -1] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:354) arg_word: {(0)} ) ] ) ) (command.ShFunction name: my_tty body: (command.BraceGroup children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(Id.Lit_LBracket '[')} {(-x)} {(/bin/readlink)} {(Id.Lit_RBracket ']')}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:381) arg_word: {(0)} ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(Id.Lit_LBracket '[')} {(-e)} {(/proc/self/fd/0)} {(Id.Lit_RBracket ']')}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:396) arg_word: {(0)} ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [(C {(readlink)} {(--silent)} {(/proc/self/fd/0)}) (C {(true)})] ) ] ) ) (command.ShFunction name: warn_if_interactive body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$RUNLEVEL'))} {(Id.Lit_Equals '=')} {(DQ (S))} {(-a)} {(DQ ($ Id.VSub_DollarName '$PREVLEVEL'))} {(Id.Lit_Equals '=')} {(DQ (N))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:448) ) ] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:453) ) ] spids: [421 450] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TTY) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:461) command_list: (command.CommandList children:[(C {(my_tty)})]) ) } spids: [460] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-z)} {(DQ ($ Id.VSub_DollarName '$TTY'))} {(-o)} {(DQ ($ Id.VSub_DollarName '$TTY'))} {(Id.Lit_Equals '=')} {(DQ (/dev/console))} {(-o)} {(DQ ($ Id.VSub_DollarName '$TTY'))} {(Id.Lit_Equals '=')} {(DQ (/dev/null))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:501) ) ] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:506) ) ] spids: [466 503] ) ] ) (C {(printf)} { (DQ (Id.Lit_Other '\\') (n) (Id.Lit_Other '\\') (n) (Id.Lit_Other '\\') ('nIt has been detected that the command') (Id.Lit_Other '\\') (n) (Id.Lit_Other '\\') (n) (Id.Lit_Other '\\') (t) ($ Id.VSub_Number '$0') (' ') ($ Id.VSub_Star '$*') (Id.Lit_Other '\\') (n) (Id.Lit_Other '\\') (n) ) } ) (C {(printf)} {(DQ ('has been run from an interactive shell.') (Id.Lit_Other '\\') (n))}) (C {(printf)} { (DQ ('It will probably not do what you expect, so this script will wait') (Id.Lit_Other '\\') (n) ) } ) (C {(printf)} {(DQ ('60 seconds before continuing. Press ^C to stop it.') (Id.Lit_Other '\\') (n))} ) (C {(printf)} { (DQ ('RUNNING THIS COMMAND IS HIGHLY DISCOURAGED!') (Id.Lit_Other '\\') (n) (Id.Lit_Other '\\') (n) (Id.Lit_Other '\\') (n) (Id.Lit_Other '\\') (n) ) } ) (C {(sleep)} {(60)}) ] ) ) (command.ShFunction name: make_static_nodes body: (command.BraceGroup children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(Id.Lit_LBracket '[')} {(-e)} {(/lib/modules/) (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:599) command_list: (command.CommandList children:[(C {(uname)} {(-r)})]) ) (/modules.devname) } {(Id.Lit_RBracket ']')} ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:610) arg_word: {(0)} ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(Id.Lit_LBracket '[')} {(-x)} {(/bin/kmod)} {(Id.Lit_RBracket ']')}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:625) arg_word: {(0)} ) ] ) (command.Pipeline children: [ (C {(/bin/kmod)} {(static-nodes)} {(--format) (Id.Lit_Equals '=') (tmpfiles)} {(--output) (Id.Lit_Equals '=') (/proc/self/fd/1)} ) (command.WhileUntil keyword: (Token id:Id.KW_While val:while span_id:647) cond: [ (command.Sentence child: (C {(read)} {(type)} {(name)} {(mode)} {(uid)} {(gid)} {(age)} {(arg)}) terminator: (Token id:Id.Op_Semi val:';' span_id:664) ) ] body: (command.DoGroup children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} {(-e)} {($ Id.VSub_DollarName '$name')} {(Id.Lit_RBracket ']')} ) (command.ControlFlow token: (Token id:Id.ControlFlow_Continue val:continue span_id:679) ) ] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$type'))} arms: [ (case_arm pat_list: [{(c)} {(b)} {(c) (Id.KW_Bang '!')} {(b) (Id.KW_Bang '!')}] action: [ (C {(mknod)} {(-m)} {($ Id.VSub_DollarName '$mode')} {($ Id.VSub_DollarName '$name')} {($ Id.VSub_DollarName '$type')} { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:712) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {($ Id.VSub_DollarName '$arg')}) (C {(sed)} { (SQ (Token id: Id.Lit_Chars val: 's/:/ /' span_id: 722 ) ) } ) ] negated: F ) ] ) ) } ) ] spids: [691 700 726 -1] ) (case_arm pat_list: [{(d)} {(d) (Id.KW_Bang '!')}] action: [(C {(mkdir)} {($ Id.VSub_DollarName '$name')})] spids: [729 733 739 -1] ) (case_arm pat_list: [{(Id.Lit_Star '*')}] action: [ (command.Simple words: [ {(echo)} { (DQ ('unparseable line (') ($ Id.VSub_DollarName '$type') (' ') ($ Id.VSub_DollarName '$name') (' ') ($ Id.VSub_DollarName '$mode') (' ') ($ Id.VSub_DollarName '$uid') (' ') ($ Id.VSub_DollarName '$gid') (' ') ($ Id.VSub_DollarName '$age') (' ') ($ Id.VSub_DollarName '$arg') (')') ) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:765) fd: -1 arg_word: {(2)} ) ] ) ] spids: [742 743 768 -1] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-x)} {(/sbin/restorecon)} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:784) ) ] action: [(C {(/sbin/restorecon)} {($ Id.VSub_DollarName '$name')})] spids: [775 786] ) ] ) ] ) ) ] negated: F ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PATH) op: assign_op.Equal rhs: {(DQ ('/sbin:/bin'))} spids: [807] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NAME) op: assign_op.Equal rhs: {(DQ (systemd-udevd))} spids: [812] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DAEMON) op: assign_op.Equal rhs: {(DQ (/lib/systemd/systemd-udevd))} spids: [817] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DESC) op: assign_op.Equal rhs: {(DQ ('the hotplug events dispatcher'))} spids: [822] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(Id.Lit_LBracket '[')} {(-x)} {($ Id.VSub_DollarName '$DAEMON')} {(Id.Lit_RBracket ']')}) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:838) arg_word: {(0)} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:tmpfs_size) op: assign_op.Equal rhs: {(DQ (10M))} spids: [846] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-e)} {(/etc/udev/udev.conf)} {(Id.Lit_RBracket ']')}) terminator: (Token id:Id.Op_Semi val:';' span_id:861) ) ] action: [(C {(.)} {(/etc/udev/udev.conf)})] spids: [852 863] ) ] ) (C {(.)} {(/lib/lsb/init-functions)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children:[(C {(supported_kernel)})] negated:T) terminator: (Token id:Id.Op_Semi val:';' span_id:883) ) ] action: [ (C {(log_failure_msg)} {(DQ ('udev requires a kernel >= 2.6.32, not started'))}) (C {(log_end_msg)} {(1)}) ] spids: [878 885] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} {(-e)} {(/proc/filesystems)} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:913) ) ] action: [ (C {(log_failure_msg)} {(DQ ('udev requires a mounted procfs, not started'))}) (C {(log_end_msg)} {(1)}) ] spids: [902 915] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [ (C {(grep)} {(-q)} {(SQ (Token id:Id.Lit_Chars val:'[[:space:]]devtmpfs$' span_id:941))} {(/proc/filesystems)} ) ] negated: T ) terminator: (Token id:Id.Op_Semi val:';' span_id:945) ) ] action: [ (C {(log_failure_msg)} {(DQ ('udev requires devtmpfs support, not started'))}) (C {(log_end_msg)} {(1)}) ] spids: [932 947] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} {(-d)} {(/sys/class/)} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:975) ) ] action: [ (C {(log_failure_msg)} {(DQ ('udev requires a mounted sysfs, not started'))}) (C {(log_end_msg)} {(1)}) ] spids: [964 977] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [ (C {(ps)} {(--no-headers)} {(--format)} {(args)} {(ax)}) (C {(egrep)} {(-q)} {(SQ (Token id:Id.Lit_Chars val:'^\\[' span_id:1015))}) ] negated: T ) terminator: (Token id:Id.Op_Semi val:';' span_id:1017) ) ] action: [ (C {(log_warning_msg)} {(DQ ('udev does not support containers, not started'))}) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:1029) arg_word: {(0)} ) ] spids: [994 1019] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(Id.Lit_LBracket '[')} {(-d)} {(/sys/class/mem/null)} {(-a)} {(Id.KW_Bang '!')} {(-L)} {(/sys/class/mem/null)} {(Id.Lit_RBracket ']')} ) (C {(Id.Lit_LBracket '[')} {(-e)} {(/sys/block)} {(-a)} {(Id.KW_Bang '!')} {(-e)} {(/sys/class/block)} {(Id.Lit_RBracket ']')} ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:1073) ) ] action: [ (C {(log_warning_msg)} {(DQ ('CONFIG_SYSFS_DEPRECATED must not be selected'))}) (C {(log_warning_msg)} {(DQ ('Booting will continue in 30 seconds but many things will be broken'))} ) (C {(sleep)} {(30)}) ] spids: [1036 1075] ) ] ) (command.Case to_match: {(DQ ($ Id.VSub_Number '$1'))} arms: [ (case_arm pat_list: [{(start)}] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Simple words: [{(init_is_upstart)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:1126) fd: 2 arg_word: {(/dev/null)} ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:1128) ) ] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:1133) arg_word: {(1)} ) ] spids: [1122 1130] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} {(-e)} {(DQ (/run/udev/))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:1155) ) ] action: [(C {(warn_if_interactive)})] spids: [1142 1157] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-w)} {(/sys/kernel/uevent_helper)} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:1176) ) ] action: [ (command.Simple words: [{(echo)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:1183) fd: -1 arg_word: {(/sys/kernel/uevent_helper)} ) ] ) ] spids: [1167 1178] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [(C {(mountpoint)} {(-q)} {(/dev/)})] negated: T ) terminator: (Token id:Id.Op_Semi val:';' span_id:1201) ) ] action: [ (C {(unmount_devpts)}) (C {(mount_devtmpfs)}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(Id.Lit_LBracket '[')} {(-d)} {(/proc/1)} {(Id.Lit_RBracket ']')}) (C {(mount)} {(-n)} {(/proc)}) ] ) ] spids: [1192 1203] ) ] ) (C {(make_static_nodes)}) (C {(udevadm)} {(info)} {(--cleanup-db)}) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} {(-x)} {(/sbin/restorecon)} {(Id.Lit_RBracket ']')}) (C {(/sbin/restorecon)} {(-R)} {(/dev)}) ] ) (C {(log_daemon_msg)} {(DQ ('Starting ') ($ Id.VSub_DollarName '$DESC'))} {(DQ ($ Id.VSub_DollarName '$NAME'))} ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {($ Id.VSub_DollarName '$DAEMON')} {(--daemon)}) terminator: (Token id:Id.Op_Semi val:';' span_id:1288) ) ] action: [(C {(log_end_msg)} {($ Id.VSub_QMark '$?')})] spids: [1283 1290] ) ] else_action: [ (C {(log_warning_msg)} {($ Id.VSub_QMark '$?')}) (C {(log_warning_msg)} {(DQ ('Waiting 15 seconds and trying to continue anyway'))}) (C {(sleep)} {(15)}) ] ) (C {(log_action_begin_msg)} {(DQ ('Synthesizing the initial hotplug events'))}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(udevadm)} {(trigger)} {(--action) (Id.Lit_Equals '=') (add)}) terminator: (Token id:Id.Op_Semi val:';' span_id:1338) ) ] action: [(C {(log_action_end_msg)} {($ Id.VSub_QMark '$?')})] spids: [1329 1340] ) ] else_action: [(C {(log_action_end_msg)} {($ Id.VSub_QMark '$?')})] ) (C {(create_dev_makedev)}) (C {(log_action_begin_msg)} {(DQ ('Waiting for /dev to be fully populated'))}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(udevadm)} {(settle)}) terminator: (Token id:Id.Op_Semi val:';' span_id:1380) ) ] action: [(C {(log_action_end_msg)} {(0)})] spids: [1375 1382] ) ] else_action: [ (C {(log_action_end_msg)} {(0)} {(SQ (Token id:Id.Lit_Chars val:timeout span_id:1398))}) ] ) ] spids: [1118 1119 1405 -1] ) (case_arm pat_list: [{(stop)}] action: [ (C {(log_daemon_msg)} {(DQ ('Stopping ') ($ Id.VSub_DollarName '$DESC'))} {(DQ ($ Id.VSub_DollarName '$NAME'))} ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(start-stop-daemon)} {(--stop)} {(--name)} {($ Id.VSub_DollarName '$NAME')} {(--user)} {(root)} {(--quiet)} {(--oknodo)} {(--retry)} {(5)} ) terminator: (Token id:Id.Op_Semi val:';' span_id:1446) ) ] action: [(C {(log_end_msg)} {($ Id.VSub_QMark '$?')})] spids: [1425 1448] ) ] else_action: [(C {(log_end_msg)} {($ Id.VSub_QMark '$?')})] ) ] spids: [1409 1410 1467 -1] ) (case_arm pat_list: [{(restart)}] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Simple words: [{(init_is_upstart)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:1479) fd: 2 arg_word: {(/dev/null)} ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:1481) ) ] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:1486) arg_word: {(1)} ) ] spids: [1475 1483] ) ] ) (C {(log_daemon_msg)} {(DQ ('Stopping ') ($ Id.VSub_DollarName '$DESC'))} {(DQ ($ Id.VSub_DollarName '$NAME'))} ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(start-stop-daemon)} {(--stop)} {(--name)} {($ Id.VSub_DollarName '$NAME')} {(--user)} {(root)} {(--quiet)} {(--oknodo)} {(--retry)} {(5)} ) terminator: (Token id:Id.Op_Semi val:';' span_id:1527) ) ] action: [(C {(log_end_msg)} {($ Id.VSub_QMark '$?')})] spids: [1506 1529] ) ] else_action: [ (command.AndOr ops: [Id.Op_DPipe] children: [(C {(log_end_msg)} {($ Id.VSub_QMark '$?')}) (C {(true)})] ) ] ) (C {(log_daemon_msg)} {(DQ ('Starting ') ($ Id.VSub_DollarName '$DESC'))} {(DQ ($ Id.VSub_DollarName '$NAME'))} ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {($ Id.VSub_DollarName '$DAEMON')} {(--daemon)}) terminator: (Token id:Id.Op_Semi val:';' span_id:1570) ) ] action: [(C {(log_end_msg)} {($ Id.VSub_QMark '$?')})] spids: [1565 1572] ) ] else_action: [(C {(log_end_msg)} {($ Id.VSub_QMark '$?')})] ) ] spids: [1471 1472 1591 -1] ) (case_arm pat_list: [{(reload)} {(force-reload)}] action: [(C {(udevadm)} {(control)} {(--reload-rules)})] spids: [1595 1598 1608 -1] ) (case_arm pat_list: [{(status)}] action: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DPipe] children: [ (C {(status_of_proc)} {($ Id.VSub_DollarName '$DAEMON')} {($ Id.VSub_DollarName '$NAME')} ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:1624) arg_word: {(0)} ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:1630) arg_word: {($ Id.VSub_QMark '$?')} ) ] ) ] spids: [1612 1613 1635 -1] ) (case_arm pat_list: [{(Id.Lit_Star '*')}] action: [ (command.Simple words: [ {(echo)} {(DQ ('Usage: /etc/init.d/udev {start|stop|restart|reload|force-reload|status}'))} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:1649) fd: -1 arg_word: {(2)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:1653) arg_word: {(1)} ) ] spids: [1639 1640 1658 -1] ) ] ) (command.ControlFlow token:(Token id:Id.ControlFlow_Exit val:exit span_id:1663) arg_word:{(0)}) ] )