diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/macro_utilities.cpp | 5 | ||||
-rw-r--r-- | src/status.cpp | 6 |
2 files changed, 8 insertions, 3 deletions
diff --git a/src/macro_utilities.cpp b/src/macro_utilities.cpp index 4e3c5108..c3655bba 100644 --- a/src/macro_utilities.cpp +++ b/src/macro_utilities.cpp @@ -87,7 +87,7 @@ RunExternalCommand::RunExternalCommand(std::string &&command) void RunExternalCommand::run() { - runExternalCommand(m_command, false); + runExternalCommand(m_command, true); } RunExternalConsoleCommand::RunExternalConsoleCommand(std::string &&command) @@ -118,5 +118,6 @@ void runExternalCommand(const std::string &cmd, bool block) if (block) std::system(cmd.c_str()); else - std::system(("nohup " + cmd + " &").c_str()); + // If we don't block, disregard any output. + std::system(("nohup " + cmd + " >/dev/null 2>&1 &").c_str()); } diff --git a/src/status.cpp b/src/status.cpp index adbdc1a3..9a3cacb1 100644 --- a/src/status.cpp +++ b/src/status.cpp @@ -570,7 +570,11 @@ void Status::Changes::songID(int song_id) if (!s.empty()) { if (!Config.execute_on_song_change.empty()) - runExternalCommand(Config.execute_on_song_change, false); + { + // We need to block to allow sending output to the terminal so a script + // can e.g. set the album art. + runExternalCommand(Config.execute_on_song_change, true); + } if (Config.fetch_lyrics_in_background) myLyrics->fetchInBackground(s, false); |