<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def run(self, start_command_srv):
 """ Setup daemon process, start child forks, and sleep until events are signalled. `start_command_srv` Set to ``True`` if command server should be started. """


        if start_command_srv:
            # note, this must be established *before* the task runner is forked
            # so the task runner can communicate with the command server.

            # fork the command server
            self._command_server.start()

            # drop root privileges; command server will remain as the only
            # daemon process with root privileges. while root plugins have root
            # shell access, they are known and the commands are logged by the
            # command server.
            self._drop_privs()

        # fork the task runner
        self._task_runner.start()

        # setup signal handlers
        self._reg_sighandlers()

        while self.running:
            time.sleep(self._sleep_period)

        self.shutdown()