diff --git a/homeassistant/__main__.py b/homeassistant/__main__.py index d2775133e08..f660376a53a 100644 --- a/homeassistant/__main__.py +++ b/homeassistant/__main__.py @@ -90,12 +90,6 @@ def get_arguments() -> argparse.Namespace: parser.add_argument( "-v", "--verbose", action="store_true", help="Enable verbose logging to file." ) - parser.add_argument( - "--pid-file", - metavar="path_to_pid_file", - default=None, - help="Path to PID file useful for running as daemon", - ) parser.add_argument( "--log-rotate-days", type=int, @@ -119,76 +113,12 @@ def get_arguments() -> argparse.Namespace: parser.add_argument( "--script", nargs=argparse.REMAINDER, help="Run one of the embedded scripts" ) - if os.name == "posix": - parser.add_argument( - "--daemon", action="store_true", help="Run Home Assistant as daemon" - ) arguments = parser.parse_args() - if os.name != "posix" or arguments.debug or arguments.runner: - setattr(arguments, "daemon", False) return arguments -def daemonize() -> None: - """Move current process to daemon process.""" - # Create first fork - if os.fork() > 0: - sys.exit(0) - - # Decouple fork - os.setsid() - - # Create second fork - if os.fork() > 0: - sys.exit(0) - - # redirect standard file descriptors to devnull - # pylint: disable=consider-using-with - infd = open(os.devnull, encoding="utf8") - outfd = open(os.devnull, "a+", encoding="utf8") - sys.stdout.flush() - sys.stderr.flush() - os.dup2(infd.fileno(), sys.stdin.fileno()) - os.dup2(outfd.fileno(), sys.stdout.fileno()) - os.dup2(outfd.fileno(), sys.stderr.fileno()) - - -def check_pid(pid_file: str) -> None: - """Check that Home Assistant is not already running.""" - # Check pid file - try: - with open(pid_file, encoding="utf8") as file: - pid = int(file.readline()) - except OSError: - # PID File does not exist - return - - # If we just restarted, we just found our own pidfile. - if pid == os.getpid(): - return - - try: - os.kill(pid, 0) - except OSError: - # PID does not exist - return - print("Fatal Error: Home Assistant is already running.") - sys.exit(1) - - -def write_pid(pid_file: str) -> None: - """Create a PID File.""" - pid = os.getpid() - try: - with open(pid_file, "w", encoding="utf8") as file: - file.write(str(pid)) - except OSError: - print(f"Fatal Error: Unable to write pid file {pid_file}") - sys.exit(1) - - def closefds_osx(min_fd: int, max_fd: int) -> None: """Make sure file descriptors get closed when we restart. @@ -213,11 +143,9 @@ def cmdline() -> list[str]: if os.path.basename(sys.argv[0]) == "__main__.py": modulepath = os.path.dirname(sys.argv[0]) os.environ["PYTHONPATH"] = os.path.dirname(modulepath) - return [sys.executable, "-m", "homeassistant"] + [ - arg for arg in sys.argv[1:] if arg != "--daemon" - ] + return [sys.executable, "-m", "homeassistant"] + list(sys.argv[1:]) - return [arg for arg in sys.argv if arg != "--daemon"] + return sys.argv def try_to_restart() -> None: @@ -277,14 +205,6 @@ def main() -> int: config_dir = os.path.abspath(os.path.join(os.getcwd(), args.config)) ensure_config_path(config_dir) - # Daemon functions - if args.pid_file: - check_pid(args.pid_file) - if args.daemon: - daemonize() - if args.pid_file: - write_pid(args.pid_file) - # pylint: disable=import-outside-toplevel from . import runner