Для дистрибутивов Linux, использующих systemd, есть ли практическая разница между этими двумя командами?
systemctl suspendpm-suspend
Что я должен использовать или предпочитать?
Для дистрибутивов Linux, использующих systemd, есть ли практическая разница между этими двумя командами?
systemctl suspendpm-suspendЧто я должен использовать или предпочитать?
Ответы:
Короче говоря, вы должны предпочитать режим приостановки, встроенный в ваш дистрибутив. Для дистрибутивов, которые поставляют systemd, это типично systemctl suspend.
Например, вики Linux Arch говорит :
systemd предоставляет собственные команды для приостановки, гибернации и гибридной приостановки, подробности см. в разделе «Управление питанием с помощью systemd». Это интерфейс по умолчанию, используемый в Arch Linux.
С systemd,
pm-utilsи его перехватчики больше не используются, вместо этого естьsystemd-suspend.
Причина, по которой вы хотите придерживаться того, что использует ваш дистрибутив, заключается в том, что их пакеты, которые заботятся о приостановке / возобновлении, будут поставлять скрипты ловушек, которые интегрируются либо с pm-utils( /usr/lib/pm-utils/sleep.d), либо systemd( /usr/lib/systemd/system-sleep/), поэтому вы должны использовать один и тот же интерфейс, чтобы иметь все нужные крючки работают как положено.
Кроме того, дистрибутивы обычно подключают надлежащий метод приостановки / гибернации к ACPI для аппаратных событий, окружений рабочего стола (для кнопок выключения, которые допускают приостановку / гибернацию), а также с помощью экранных заставок / блокировок и т. Д.
Оба pm-suspendи systemd-suspendобычно используют одни и те же интерфейсы, чтобы фактически перевести компьютер в спящий режим.
Оба по умолчанию используют драйвер приостановки ядра (записывая в /sys/power/state) и оба поддерживают внешние драйверы приостановки (например uswsusp, см. Здесь для получения подробной информации о том, как подключить его к systemd.)
Они оба поддерживают файлы конфигурации и скрипты ловушек, которые вызываются в процессе приостановки или возобновления, основное отличие заключается в расположении файлов (API ловушек очень похож):
pm-utilsчитает его конфигурацию из файлов /etc/pm/config.dи выполняет перехваты из обоих /etc/pm/sleep.dи /usr/lib/pm-utils/sleep.dкаталогов.systemd-suspendчитает его конфигурацию из /etc/systemd/sleep.confфайла (или файлов в sleep.conf.dкаталоге) и выполняет перехваты из /usr/lib/systemd/system-sleep/.Итак, с этой точки зрения оба выглядят очень похожими ...
Но systemd идет дальше в своей поддержке suspend / hibernate / resume, так как:
systemctl suspendвсе же, конечно, вариант.) Обычно запуск приостановки через D-Bus, а не с помощью команды полезно из рабочего стола.Таким образом, несмотря на то, что и то, pm-utilsи другое systemd-suspendобеспечивает реальное приостановление работы системы примерно одинаковыми способами, интеграция с другими компонентами системы делает так, что важно, какой из них называется ... А в дистрибутивах, поставляющих systemd, systemctl suspendобычно право позвонить.
pm-utilsустановлен по умолчанию и, похоже, на него полагается systemctl, но в нем /usr/lib/pm-utils/sleep.d/есть что-то и /usr/lib/systemd/system-sleep/его нет. Тем не менее, я вижу /lib/systemd/system-sleep/и еще несколько /snap/, все из которых имеют один или два файла в них.