Commit a4e42172 authored by Max Kellermann's avatar Max Kellermann

Main: ignore the "pid_file" setting if started as systemd service

Commit 552c30ea caused problems for those people who still had a "pid_file" setting (even though that is obsolete with systemd), because now /run/mpd is owned by root:root (our mpd.service has no User=mpd directive, so systemd starts MPD as root). To work around this problem, and to be able to keep RuntimeDirectory=mpd (which solved a problem of other MPD users), the best compromise seems to just ignore the "pid_file" setting when it is of no use.
parent 8754d705
......@@ -2,6 +2,7 @@ ver 0.23.4 (not yet released)
* output
- alsa: add option "thesycon_dsd_workaround" to work around device bug
* fix crash or debug builds if startup fails
* ignore the "pid_file" setting if started as systemd service
* Windows
- enable the "openmpt" decoder plugin
......
......@@ -145,9 +145,19 @@ static void
glue_daemonize_init(const CommandLineOptions &options,
const ConfigData &config)
{
auto pid_file = config.GetPath(ConfigOption::PID_FILE);
#ifdef __linux__
if (options.systemd && pid_file != nullptr) {
pid_file = nullptr;
fprintf(stderr,
"Ignoring the 'pid_file' setting in systemd mode\n");
}
#endif
daemonize_init(config.GetString(ConfigOption::USER),
config.GetString(ConfigOption::GROUP),
config.GetPath(ConfigOption::PID_FILE));
std::move(pid_file));
if (options.kill)
daemonize_kill();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment