diff --git a/CHANGELOG.md b/CHANGELOG.md index fa0f3512..5bbaa65f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -30,11 +30,29 @@ NOTE: Add new changes BELOW THIS COMMENT. ### Changed - Frontend rewritten in TypeScript. +- The `systemd`-based service now uses `journal` for logging by default. It + also doesn't create the `/var/log/` directory anymore ([#7053]). + + **NOTE:** With an installed service for changes to take effect, you need to + reinstall the service using `-r` flag of the [install script][install-script] + or via the CLI (with root privileges): + + ```sh + ./AdGuardHome -s uninstall + ./AdGuardHome -s install + ``` + + Don't forget to backup your configuration file and other important data before + reinstalling the service. ### Deprecated - Node 18 support, Node 20 will be required in future releases. +[#7053]: https://github.com/AdguardTeam/AdGuardHome/issues/7053 + +[install-script]: https://github.com/AdguardTeam/AdGuardHome/?tab=readme-ov-file#automated-install-linux-and-mac + diff --git a/internal/home/service.go b/internal/home/service.go index 30bef2a7..27d59ad3 100644 --- a/internal/home/service.go +++ b/internal/home/service.go @@ -460,8 +460,9 @@ var launchdConfig = ` // 1. The RestartSec setting is set to a lower value of 10 to make sure we // always restart quickly. // -// 2. The ExecStartPre setting is added to make sure that the log directory is -// always created to prevent the 209/STDOUT errors. +// 2. The StandardOutput and StandardError settings are set to redirect the +// output to the systemd journal, see +// https://man7.org/linux/man-pages/man5/systemd.exec.5.html#LOGGING_AND_STANDARD_INPUT/OUTPUT. const systemdScript = `[Unit] Description={{.Description}} ConditionFileIsExecutable={{.Path|cmdEscape}} @@ -471,7 +472,6 @@ ConditionFileIsExecutable={{.Path|cmdEscape}} [Service] StartLimitInterval=5 StartLimitBurst=10 -ExecStartPre=/bin/mkdir -p /var/log/ ExecStart={{.Path|cmdEscape}}{{range .Arguments}} {{.|cmd}}{{end}} {{if .ChRoot}}RootDirectory={{.ChRoot|cmd}}{{end}} {{if .WorkingDirectory}}WorkingDirectory={{.WorkingDirectory|cmdEscape}}{{end}} @@ -479,8 +479,8 @@ ExecStart={{.Path|cmdEscape}}{{range .Arguments}} {{.|cmd}}{{end}} {{if .ReloadSignal}}ExecReload=/bin/kill -{{.ReloadSignal}} "$MAINPID"{{end}} {{if .PIDFile}}PIDFile={{.PIDFile|cmd}}{{end}} {{if and .LogOutput .HasOutputFileSupport -}} -StandardOutput=file:/var/log/{{.Name}}.out -StandardError=file:/var/log/{{.Name}}.err +StandardOutput=journal +StandardError=journal {{- end}} {{if gt .LimitNOFILE -1 }}LimitNOFILE={{.LimitNOFILE}}{{end}} {{if .Restart}}Restart={{.Restart}}{{end}}