Disable systemctl when built without systemd support (#2066)

/bin/sh: systemctl: not found
This commit is contained in:
Jan Beich 2023-04-15 19:03:09 +00:00 committed by GitHub
parent 8944db49be
commit 63841c8aac
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 1 deletions

View file

@ -443,7 +443,9 @@ void CCompositor::startCompositor() {
if (m_sWLRSession /* Session-less Hyprland usually means a nest, don't update the env in that case */ && fork() == 0)
execl(
"/bin/sh", "/bin/sh", "-c",
#ifdef USES_SYSTEMD
"systemctl --user import-environment DISPLAY WAYLAND_DISPLAY HYPRLAND_INSTANCE_SIGNATURE XDG_CURRENT_DESKTOP && hash dbus-update-activation-environment 2>/dev/null && "
#endif
"dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP HYPRLAND_INSTANCE_SIGNATURE",
nullptr);

View file

@ -1090,8 +1090,11 @@ void CConfigManager::handleEnv(const std::string& command, const std::string& va
if (command.back() == 'd') {
// dbus
const auto CMD = "systemctl --user import-environment " + ARGS[0] +
const auto CMD =
#ifdef USES_SYSTEMD
"systemctl --user import-environment " + ARGS[0] +
" && hash dbus-update-activation-environment 2>/dev/null && "
#endif
"dbus-update-activation-environment --systemd " +
ARGS[0];
handleRawExec("", CMD.c_str());
@ -1719,7 +1722,9 @@ void CConfigManager::dispatchExecOnce() {
if (g_pCompositor->m_sWLRSession)
handleRawExec(
"",
#ifdef USES_SYSTEMD
"systemctl --user import-environment DISPLAY WAYLAND_DISPLAY HYPRLAND_INSTANCE_SIGNATURE XDG_CURRENT_DESKTOP && hash dbus-update-activation-environment 2>/dev/null && "
#endif
"dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP HYPRLAND_INSTANCE_SIGNATURE");
firstExecDispatched = true;