Лучшим подходом было бы написать скрипт на языке с привязкой к шине DBus и использовать метод logind [112954]Inhibit()[112955], но systemd действительно предоставляет команду [112956]systemd-inhibit[112957], которая может быть использована из скрипта оболочки команд. Обратите внимание, что она предназначена для использования в качестве обёртки, удерживая блокировку до выхода дочернего процесса:
P.S. Всё это предполагает, что вы не используете окружение рабочего стола, которое уже блокирует "handle-lid-switch". Запуск [112958]systemd-inhibit[112959] без аргументов перечислит существующие блокировки.[112613].