Daemon

Allow run command as daemon. Used in daemon cli.

class duetector.tools.daemon.Daemon(workdir: str | Path, application: str = 'daemon', cmd: list[str] | None = None, env_dict: dict[str, str] | None = None, rotate_log: bool = True)[source]

Bases: object

Start a daemon process and record pid.

Parameters:
  • workdir (str, Path) – Working directory for daemon process.

  • cmd (List[str]) – Command to start daemon process.

  • env_dict (Dict[str, str]) – Environment variables for daemon process.

  • rotate_log (bool) – Rotate log file or not.

Example

>>> d = Daemon(
...     cmd=["sleep", "100"],
...     workdir="/tmp/duetector",
...     env_dict={"DUETECTOR_LOG_LEVEL": "DEBUG"},
...     auto_restart=True,
...     rotate_log=True,
... )
>>> d.start()
>>> d.poll()
>>> d.stop()
_rotate_log()[source]

Rotate log file.

property log_file

Path to log file.

property pid

Pid of daemon process.

property pid_file

Path to pid file.

poll() bool[source]

Poll daemon process.

start()[source]

Start daemon process.

stop()[source]

Stop daemon process.