Para distribuições Linux usando systemd, existe uma diferença prática entre esses dois comandos?
systemctl suspend
pm-suspend
Qual devo usar ou preferir?
Em resumo, você geralmente prefere o modo de suspensão integrado à sua distribuição. Para distribuições enviadas para o systemd, isso normalmente systemctl suspend
.
Por exemplo, o wiki do Arch Linux diz :
O systemd fornece comandos nativos para suspensão, hibernação e suspensão híbrida, consulte "Gerenciamento de energia com o systemd" para obter detalhes. Essa é a interface padrão usada no Arch Linux.
Com o systemd,
pm-utils
e seus ganchos não são mais usados, em vez disso, existesystemd-suspend
.
A razão pela qual você deseja manter o que a sua distribuição usa é que os pacotes deles que se preocupam com suspensão / retomada enviarão scripts de gancho que se integram a pm-utils
( /usr/lib/pm-utils/sleep.d
) ou systemd
( /usr/lib/systemd/system-sleep/
), portanto, você deve usar a mesma interface para ter todas as informações adequadas. ganchos funcionam como esperado.
Além disso, as distros normalmente conectam o método de suspensão / hibernação adequado ao ACPI para eventos de hardware, ambientes de área de trabalho (para botões de desligamento que permitem suspensão / hibernação) e com protetores de tela / bloqueios, etc.
Ambos pm-suspend
e systemd-suspend
usar normalmente as mesmas interfaces para realmente colocar o computador para dormir.
O padrão é usar o driver de suspensão do kernel (escrevendo para /sys/power/state
) e ambos suportam drivers de suspensão externos (como uswsusp
, consulte aqui para obter detalhes sobre como conectá-lo ao systemd.)
Ambos suportam arquivos de configuração e scripts de gancho chamados no processo de suspensão ou retomada, a principal diferença é a localização dos arquivos (a API dos ganchos é muito semelhante):
pm-utils
lê sua configuração dos arquivos /etc/pm/config.d
e executa ganchos dos diretórios /etc/pm/sleep.d
e /usr/lib/pm-utils/sleep.d
.systemd-suspend
lê sua configuração do /etc/systemd/sleep.conf
arquivo (ou arquivos em um sleep.conf.d
diretório) e executa ganchos de /usr/lib/systemd/system-sleep/
.Então, desse ponto de vista, ambos parecem muito semelhantes ...
Mas o systemd vai mais além no suporte a suspensão / hibernação / resumo, pois:
systemctl suspend
ainda seja uma opção). Disparar a suspensão pelo D-Bus em vez de executar um comando útil em um ambiente de desktop.Portanto, mesmo que ambos pm-utils
e systemd-suspend
atinjam a suspensão real do sistema da mesma maneira, a integração com os outros componentes do sistema faz com que seja importante qual é chamado ... E nas distribuições que enviam systemd, systemctl suspend
normalmente é o certo para ligar.
pm-utils
instalado por padrão e parece dependersystemctl
, mas/usr/lib/pm-utils/sleep.d/
possui algumas coisas e/usr/lib/systemd/system-sleep/
não existe. No entanto, eu vejo/lib/systemd/system-sleep/
e vários outros abaixo/snap/
, todos com um ou dois arquivos.