(CommandList children: [ (FuncDef name: unmount_devpts body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(mountpoint)} {(-q)} {(/dev/pts/)}) terminator: <Op_Semi ';'> ) ] action: [(C {(umount)} {(-n)} {(-l)} {(/dev/pts/)})] spids: [16777215 47] ) ] spids: [16777215 59] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(mountpoint)} {(-q)} {(/dev/shm/)}) terminator: <Op_Semi ';'> ) ] action: [(C {(umount)} {(-n)} {(-l)} {(/dev/shm/)})] spids: [16777215 72] ) ] spids: [16777215 84] ) ] spids: [35] ) spids: [31 34] ) (FuncDef name: mount_devtmpfs body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(grep)} {(-E)} {(-q)} {(DQ ('^[^[:space:]]+ /dev devtmpfs'))} {(/proc/mounts)}) terminator: <Op_Semi ';'> ) ] action: [ (C {(mount)} {(-n)} {(-o)} {(remount) (Lit_Comma ',') (nosuid) (Lit_Comma ',') (Lit_VarLike 'size=') ($ VSub_Name '$tmpfs_size') (Lit_Comma ',') (Lit_VarLike 'mode=') (0755) } {(-t)} {(devtmpfs)} {(devtmpfs)} {(/dev)} ) (ControlFlow token:<ControlFlow_Return return>) ] spids: [16777215 114] ) ] spids: [16777215 145] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(mount)} {(-n)} {(-o)} {(nosuid) (Lit_Comma ',') (Lit_VarLike 'size=') ($ VSub_Name '$tmpfs_size') (Lit_Comma ',') (Lit_VarLike 'mode=') (0755) } {(-t)} {(devtmpfs)} {(devtmpfs)} {(/dev)} ) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(log_failure_msg)} {(DQ ('udev requires devtmpfs support, not started'))}) (C {(log_end_msg)} {(1)}) ] spids: [16777215 176] ) ] spids: [16777215 191] ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [96] ) spids: [92 95] ) (FuncDef name: create_dev_makedev body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-e)} {(/sbin/MAKEDEV)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [(C {(ln)} {(-sf)} {(/sbin/MAKEDEV)} {(/dev/MAKEDEV)})] spids: [16777215 220] ) ] else_action: [(C {(ln)} {(-sf)} {(/bin/true)} {(/dev/MAKEDEV)})] spids: [232 244] ) ] spids: [206] ) spids: [202 205] ) (FuncDef name: supported_kernel body: (BraceGroup children: [ (Case to_match: { (DQ (CommandSubPart command_list: (CommandList children:[(C {(uname)} {(-r)})]) left_token: <Left_CommandSub '$('> spids: [259 263] ) ) } arms: [ (case_arm pat_list: [ {(2.) (Lit_Other '[') (012345) (Lit_Other ']') (.) (Lit_Other '*')} {(2.6.) (Lit_Other '[') (0-9) (Lit_Other ']')} {(2.6.) (Lit_Other '[') (0-9) (Lit_Other ']') (Lit_Other '[') (KW_Bang '!') (0-9) (Lit_Other ']') (Lit_Other '*') } ] action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})] spids: [269 290 296 16777215] ) (case_arm pat_list: [ {(2.6.) (Lit_Other '[') (12) (Lit_Other ']') (Lit_Other '[') (0-9) (Lit_Other ']')} {(2.6.) (Lit_Other '[') (12) (Lit_Other ']') (Lit_Other '[') (0-9) (Lit_Other ']') (Lit_Other '[') (KW_Bang '!') (0-9) (Lit_Other ']') (Lit_Other '*') } ] action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})] spids: [299 319 325 16777215] ) (case_arm pat_list: [ {(2.6.3) (Lit_Other '[') (0-1) (Lit_Other ']')} {(2.6.3) (Lit_Other '[') (0-1) (Lit_Other ']') (Lit_Other '[') (KW_Bang '!') (0-9) (Lit_Other ']') (Lit_Other '*') } ] action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})] spids: [328 342 348 16777215] ) ] spids: [256 266 351] ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [253] ) spids: [249 252] ) (FuncDef name: my_tty body: (BraceGroup children: [ (AndOr ops: [Op_DPipe] children: [ (C {(Lit_Other '[')} {(-x)} {(/bin/readlink)} {(Lit_Other ']')}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] ) (AndOr ops: [Op_DPipe] children: [ (C {(Lit_Other '[')} {(-e)} {(/proc/self/fd/0)} {(Lit_Other ']')}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] ) (AndOr ops: [Op_DPipe] children: [(C {(readlink)} {(--silent)} {(/proc/self/fd/0)}) (C {(true)})] ) ] spids: [368] ) spids: [364 367] ) (FuncDef name: warn_if_interactive body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$RUNLEVEL'))} {(Lit_Other '=')} {(DQ (S))} {(-a)} {(DQ ($ VSub_Name '$PREVLEVEL'))} {(Lit_Other '=')} {(DQ (N))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(ControlFlow token:<ControlFlow_Return return>)] spids: [16777215 450] ) ] spids: [16777215 456] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TTY) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(my_tty)})]) left_token: <Left_CommandSub '$('> spids: [461 463] ) } spids: [460] ) ] spids: [460] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$TTY'))} {(-o)} {(DQ ($ VSub_Name '$TTY'))} {(Lit_Other '=')} {(DQ (/dev/console))} {(-o)} {(DQ ($ VSub_Name '$TTY'))} {(Lit_Other '=')} {(DQ (/dev/null))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(ControlFlow token:<ControlFlow_Return return>)] spids: [16777215 503] ) ] spids: [16777215 509] ) (C {(printf)} { (DQ (Lit_Other '\\') (n) (Lit_Other '\\') (n) (Lit_Other '\\') ('nIt has been detected that the command') (Lit_Other '\\') (n) (Lit_Other '\\') (n) (Lit_Other '\\') (t) ($ VSub_Number '$0') (' ') ($ VSub_Star '$*') (Lit_Other '\\') (n) (Lit_Other '\\') (n) ) } ) (C {(printf)} {(DQ ('has been run from an interactive shell.') (Lit_Other '\\') (n))}) (C {(printf)} { (DQ ('It will probably not do what you expect, so this script will wait') (Lit_Other '\\') (n) ) } ) (C {(printf)} {(DQ ('60 seconds before continuing. Press ^C to stop it.') (Lit_Other '\\') (n))} ) (C {(printf)} { (DQ ('RUNNING THIS COMMAND IS HIGHLY DISCOURAGED!') (Lit_Other '\\') (n) (Lit_Other '\\') (n) (Lit_Other '\\') (n) (Lit_Other '\\') (n) ) } ) (C {(sleep)} {(60)}) ] spids: [418] ) spids: [414 417] ) (FuncDef name: make_static_nodes body: (BraceGroup children: [ (AndOr ops: [Op_DPipe] children: [ (C {(Lit_Other '[')} {(-e)} {(/lib/modules/) (CommandSubPart command_list: (CommandList children:[(C {(uname)} {(-r)})]) left_token: <Left_CommandSub '$('> spids: [599 603] ) (/modules.devname) } {(Lit_Other ']')} ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] ) (AndOr ops: [Op_DPipe] children: [ (C {(Lit_Other '[')} {(-x)} {(/bin/kmod)} {(Lit_Other ']')}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] ) (Pipeline children: [ (C {(/bin/kmod)} {(static-nodes)} {(--format) (Lit_Other '=') (tmpfiles)} {(--output) (Lit_Other '=') (/proc/self/fd/1)} ) (While cond: [ (Sentence child: (C {(read)} {(type)} {(name)} {(mode)} {(uid)} {(gid)} {(age)} {(arg)}) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (AndOr ops: [Op_DAmp] children: [ (C {(Lit_Other '[')} {(-e)} {($ VSub_Name '$name')} {(Lit_Other ']')}) (ControlFlow token: <ControlFlow_Continue continue> ) ] ) (Case to_match: {(DQ ($ VSub_Name '$type'))} arms: [ (case_arm pat_list: [{(c)} {(b)} {(c) (KW_Bang '!')} {(b) (KW_Bang '!')}] action: [ (C {(mknod)} {(-m)} {($ VSub_Name '$mode')} {($ VSub_Name '$name')} {($ VSub_Name '$type')} { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {($ VSub_Name '$arg')}) (C {(sed)} {(SQ <'s/:/ /'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [712 724] ) } ) ] spids: [691 700 726 16777215] ) (case_arm pat_list: [{(d)} {(d) (KW_Bang '!')}] action: [(C {(mkdir)} {($ VSub_Name '$name')})] spids: [729 733 739 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (SimpleCommand words: [ {(echo)} { (DQ ('unparseable line (') ($ VSub_Name '$type') (' ') ($ VSub_Name '$name') (' ') ($ VSub_Name '$mode') (' ') ($ VSub_Name '$uid') (' ') ($ VSub_Name '$gid') (' ') ($ VSub_Name '$age') (' ') ($ VSub_Name '$arg') (')') ) } ] redirects: [ (Redir op_id: Redir_GreatAnd fd: 16777215 arg_word: {(2)} spids: [765] ) ] ) ] spids: [742 743 768 16777215] ) ] spids: [682 688 771] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-x)} {(/sbin/restorecon)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [(C {(/sbin/restorecon)} {($ VSub_Name '$name')})] spids: [16777215 786] ) ] spids: [16777215 794] ) ] spids: [666 797] ) ) ] negated: F ) ] spids: [591] ) spids: [587 590] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:PATH) op:Equal rhs:{(DQ ('/sbin:/bin'))} spids:[807])] spids: [807] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:NAME) op:Equal rhs:{(DQ (systemd-udevd))} spids:[812])] spids: [812] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DAEMON) op: Equal rhs: {(DQ (/lib/systemd/systemd-udevd))} spids: [817] ) ] spids: [817] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DESC) op: Equal rhs: {(DQ ('the hotplug events dispatcher'))} spids: [822] ) ] spids: [822] ) (AndOr ops: [Op_DPipe] children: [ (C {(Lit_Other '[')} {(-x)} {($ VSub_Name '$DAEMON')} {(Lit_Other ']')}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)}) ] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:tmpfs_size) op:Equal rhs:{(DQ (10M))} spids:[846])] spids: [846] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-e)} {(/etc/udev/udev.conf)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [(C {(.)} {(/etc/udev/udev.conf)})] spids: [16777215 863] ) ] spids: [16777215 870] ) (C {(.)} {(/lib/lsb/init-functions)}) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children:[(C {(supported_kernel)})] negated:T) terminator: <Op_Semi ';'> ) ] action: [ (C {(log_failure_msg)} {(DQ ('udev requires a kernel >= 2.6.32, not started'))}) (C {(log_end_msg)} {(1)}) ] spids: [16777215 885] ) ] spids: [16777215 899] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-e)} {(/proc/filesystems)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(log_failure_msg)} {(DQ ('udev requires a mounted procfs, not started'))}) (C {(log_end_msg)} {(1)}) ] spids: [16777215 915] ) ] spids: [16777215 929] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [(C {(grep)} {(-q)} {(SQ <'[[:space:]]devtmpfs$'>)} {(/proc/filesystems)})] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(log_failure_msg)} {(DQ ('udev requires devtmpfs support, not started'))}) (C {(log_end_msg)} {(1)}) ] spids: [16777215 947] ) ] spids: [16777215 961] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-d)} {(/sys/class/)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(log_failure_msg)} {(DQ ('udev requires a mounted sysfs, not started'))}) (C {(log_end_msg)} {(1)}) ] spids: [16777215 977] ) ] spids: [16777215 991] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(ps)} {(--no-headers)} {(--format)} {(args)} {(ax)}) (C {(egrep)} {(-q)} {(SQ <'^\\['>)}) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(log_warning_msg)} {(DQ ('udev does not support containers, not started'))}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)}) ] spids: [16777215 1019] ) ] spids: [16777215 1033] ) (If arms: [ (if_arm cond: [ (Sentence child: (AndOr ops: [Op_DPipe] children: [ (C {(Lit_Other '[')} {(-d)} {(/sys/class/mem/null)} {(-a)} {(KW_Bang '!')} {(-L)} {(/sys/class/mem/null)} {(Lit_Other ']')} ) (C {(Lit_Other '[')} {(-e)} {(/sys/block)} {(-a)} {(KW_Bang '!')} {(-e)} {(/sys/class/block)} {(Lit_Other ']')} ) ] ) terminator: <Op_Semi ';'> ) ] 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: [16777215 1075] ) ] spids: [16777215 1096] ) (Case to_match: {(DQ ($ VSub_Number '$1'))} arms: [ (case_arm pat_list: [{(start)}] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (SimpleCommand words: [{(init_is_upstart)}] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [1126] ) ] ) terminator: <Op_Semi ';'> ) ] action: [(ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})] spids: [16777215 1130] ) ] spids: [16777215 1138] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-e)} {(DQ (/run/udev/))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [(C {(warn_if_interactive)})] spids: [16777215 1157] ) ] spids: [16777215 1163] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-w)} {(/sys/kernel/uevent_helper)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [{(echo)}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(/sys/kernel/uevent_helper)} spids: [1183] ) ] ) ] spids: [16777215 1178] ) ] spids: [16777215 1188] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children:[(C {(mountpoint)} {(-q)} {(/dev/)})] negated:T) terminator: <Op_Semi ';'> ) ] action: [ (C {(unmount_devpts)}) (C {(mount_devtmpfs)}) (AndOr ops: [Op_DPipe] children: [ (C {(Lit_Other '[')} {(-d)} {(/proc/1)} {(Lit_Other ']')}) (C {(mount)} {(-n)} {(/proc)}) ] ) ] spids: [16777215 1203] ) ] spids: [16777215 1229] ) (C {(make_static_nodes)}) (C {(udevadm)} {(info)} {(--cleanup-db)}) (AndOr ops: [Op_DAmp] children: [ (C {(Lit_Other '[')} {(-x)} {(/sbin/restorecon)} {(Lit_Other ']')}) (C {(/sbin/restorecon)} {(-R)} {(/dev)}) ] ) (C {(log_daemon_msg)} {(DQ ('Starting ') ($ VSub_Name '$DESC'))} {(DQ ($ VSub_Name '$NAME'))}) (If arms: [ (if_arm cond: [ (Sentence child: (C {($ VSub_Name '$DAEMON')} {(--daemon)}) terminator: <Op_Semi ';'> ) ] action: [(C {(log_end_msg)} {($ VSub_QMark '$?')})] spids: [16777215 1290] ) ] else_action: [ (C {(log_warning_msg)} {($ VSub_QMark '$?')}) (C {(log_warning_msg)} {(DQ ('Waiting 15 seconds and trying to continue anyway'))}) (C {(sleep)} {(15)}) ] spids: [1298 1318] ) (C {(log_action_begin_msg)} {(DQ ('Synthesizing the initial hotplug events'))}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(udevadm)} {(trigger)} {(--action) (Lit_Other '=') (add)}) terminator: <Op_Semi ';'> ) ] action: [(C {(log_action_end_msg)} {($ VSub_QMark '$?')})] spids: [16777215 1340] ) ] else_action: [(C {(log_action_end_msg)} {($ VSub_QMark '$?')})] spids: [1348 1356] ) (C {(create_dev_makedev)}) (C {(log_action_begin_msg)} {(DQ ('Waiting for /dev to be fully populated'))}) (If arms: [ (if_arm cond: [(Sentence child:(C {(udevadm)} {(settle)}) terminator:<Op_Semi ';'>)] action: [(C {(log_action_end_msg)} {(0)})] spids: [16777215 1382] ) ] else_action: [(C {(log_action_end_msg)} {(0)} {(SQ <timeout>)})] spids: [1390 1402] ) ] spids: [1118 1119 1405 16777215] ) (case_arm pat_list: [{(stop)}] action: [ (C {(log_daemon_msg)} {(DQ ('Stopping ') ($ VSub_Name '$DESC'))} {(DQ ($ VSub_Name '$NAME'))}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(start-stop-daemon)} {(--stop)} {(--name)} {($ VSub_Name '$NAME')} {(--user)} {(root)} {(--quiet)} {(--oknodo)} {(--retry)} {(5)} ) terminator: <Op_Semi ';'> ) ] action: [(C {(log_end_msg)} {($ VSub_QMark '$?')})] spids: [16777215 1448] ) ] else_action: [(C {(log_end_msg)} {($ VSub_QMark '$?')})] spids: [1456 1464] ) ] spids: [1409 1410 1467 16777215] ) (case_arm pat_list: [{(restart)}] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (SimpleCommand words: [{(init_is_upstart)}] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [1479] ) ] ) terminator: <Op_Semi ';'> ) ] action: [(ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})] spids: [16777215 1483] ) ] spids: [16777215 1491] ) (C {(log_daemon_msg)} {(DQ ('Stopping ') ($ VSub_Name '$DESC'))} {(DQ ($ VSub_Name '$NAME'))}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(start-stop-daemon)} {(--stop)} {(--name)} {($ VSub_Name '$NAME')} {(--user)} {(root)} {(--quiet)} {(--oknodo)} {(--retry)} {(5)} ) terminator: <Op_Semi ';'> ) ] action: [(C {(log_end_msg)} {($ VSub_QMark '$?')})] spids: [16777215 1529] ) ] else_action: [ (AndOr ops: [Op_DPipe] children: [(C {(log_end_msg)} {($ VSub_QMark '$?')}) (C {(true)})] ) ] spids: [1537 1549] ) (C {(log_daemon_msg)} {(DQ ('Starting ') ($ VSub_Name '$DESC'))} {(DQ ($ VSub_Name '$NAME'))}) (If arms: [ (if_arm cond: [ (Sentence child: (C {($ VSub_Name '$DAEMON')} {(--daemon)}) terminator: <Op_Semi ';'> ) ] action: [(C {(log_end_msg)} {($ VSub_QMark '$?')})] spids: [16777215 1572] ) ] else_action: [(C {(log_end_msg)} {($ VSub_QMark '$?')})] spids: [1580 1588] ) ] spids: [1471 1472 1591 16777215] ) (case_arm pat_list: [{(reload)} {(force-reload)}] action: [(C {(udevadm)} {(control)} {(--reload-rules)})] spids: [1595 1598 1608 16777215] ) (case_arm pat_list: [{(status)}] action: [ (AndOr ops: [Op_DAmp Op_DPipe] children: [ (C {(status_of_proc)} {($ VSub_Name '$DAEMON')} {($ VSub_Name '$NAME')}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)}) (ControlFlow token: <ControlFlow_Exit exit> arg_word: {($ VSub_QMark '$?')} ) ] ) ] spids: [1612 1613 1635 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (SimpleCommand words: [ {(echo)} {(DQ ('Usage: /etc/init.d/udev {start|stop|restart|reload|force-reload|status}'))} ] redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[1649])] ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [1639 1640 1658 16777215] ) ] spids: [1109 1115 1660] ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)}) ] )