web-dev-qa-db-ja.com

特定のアカウントにログインしていないときにスリープ/サスペンドを防止する

Ubuntu 18.04を実行する共有オフィスデスクトップがあり、複数のアカウントで(sshとスクリーンを介して)いくつかのジョブが数週間実行されることがよくあります。アカウントにログインすると、次の方法でスリープ/サスペンドが無効になります。

  1. メインシステム設定の電源設定
  2. gnome-Tweak-toolを使用して、「ラップトップの蓋を閉じたときに一時停止する」をオフに設定します。

これは、これらの電力設定を持つユーザーが常にマシンに直接ログインしている限り(つまり、ssh経由ではなく物理的に)正常に機能します。

問題は、ユーザーが現在直接ログインしていないとき、つまり、マシンがメインのログイン画面にいるとき(起動時など)です。特定のアカウントにログインしていないときにスリープ/サスペンド設定を設定する方法はないようです。そのため、マシンがこの画面に残っている場合、最終的にスリープ状態になり、実行中のすべてのジョブが中断されます。

前述したように、someユーザーがログインしている限り問題なく動作します。ただし、これはセキュリティリスクと見なされています。そこで、システム全体のより良いソリューションを見つけたいと考えています。

Ubuntu 16.04を実行しているこの問題のない別のオフィスデスクトップがあることに言及する必要があります。

12
josephwb

ユーザーがサインオンしていないとき

ユーザーがサインオンしていない場合、電源設定は疑似ユーザーID gdmから取得されます。 GDM auto-suspendの次のコントロールは、 ArchLinux GDM からのものです。

GDMの自動サスペンド(GNOME 3.28)

GDMは、個別のdconfデータベースを使用して電源管理を制御します。ユーザー設定をGDMのdconfデータベースにコピーすることにより、GDMをユーザーセッションと同じように動作させることができます。

$ IFS=$'\n'; for x in $(Sudo -u username gsettings list-recursively org.gnome.settings-daemon.plugins.power); do eval "Sudo -u gdm dbus-launch gsettings set $x"; done; unset IFS

ここで、usernameはユーザーの名前です。

または、単純に自動サスペンドを無効にするには(また、acをバッテリーに置き換えてコマンドを実行し、バッテリーでの実行中も無効にします):

$ Sudo -u gdm dbus-launch gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type 'nothing'
7

ファイルの編集/etc/systemd/logind.conf

そこで行を見つけることができます:

#HandleLidSwitch=suspend

次のように変更します。

HandleLidSwitch=ignore

これで、ログイン画面はリッドスイッチも無視します。

Logind.confの良いubuntuマニュアルページがあります:

http://manpages.ubuntu.com/manpages/cosmic/man5/logind.conf.5.html

Policykitを使用してサスペンドを無効にするには(システム全体の設定)、次の手順に従ってください。

https://sites.google.com/site/easytipsforlinux/disable-hibernate-and-suspend

4
Pasi Suominen