Как я могу приостановить через SSH?

Думаю, этот вопрос почти такой же, как . Как настроить dbus, чтобы ssh-user мог приостановить работу сервера? ; кроме того, что я хотел сформулировать это лучше.

Предположим, у меня сервер Ubuntu работает без остановок, назовем его MyServer. Скажем так, у меня есть другой ПК в той же локальной сети, что и MyServer, назовем его MyLocalPC.

MyLocalPC затем остается в режиме ожидания, если он не включен через wakeonlan в MyServer. Эта часть процесса отлично работает для меня: я могу войти через ssh - MyServer, а по приглашению MyServer ssh могу выдать wakeonlan, и MyLocalPC просыпается - отлично.

Затем, однако, как только я закончу работать с MyLocalPC, я бы хотел снова приостановить его. Проблема заключается в следующем - я могу легко перевести машину в режим ожидания, если сначала введу ssh в MyLocalPC через ssh:

[MyServer]$ ssh MyLocalPC
[MyLocalPC]$ dbus-send --session --dest=org.freedesktop.PowerManagement --type=method_call --print-reply --reply-timeout=2000 /org/freedesktop/PowerManagement org.freedesktop.PowerManagement.Suspend

Это приостановит MyLocalPC - но также заблокирует [ 1118], выходя должным образом, и в конечном итоге от ssh до MyServer оказываются замороженными. Я пытаюсь запутаться и выдать что-то вроде этого:

[MyServer]$ ssh MyLocalPC "dbus-send --session --dest=org.freedesktop.PowerManagement --type=method_call --print-reply --reply-timeout=2000 /org/freedesktop/PowerManagement org.freedesktop.PowerManagement.Suspend"
Failed to open connection to "session" message bus: /bin/dbus-launch terminated abnormally with the following error: Autolaunch error: X11 initialization failed.

Затем я читаю где-то DISPLAY переменная должна быть определена - но это тоже не получается:

[MyServer]$ ssh MyLocalPC "DISPLAY=:0 dbus-send --session --dest=org.freedesktop.PowerManagement --type=method_call --print-reply --reply-timeout=2000 /org/freedesktop/PowerManagement  org.freedesktop.PowerManagement.Suspend"
Error org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.PowerManagement was not provided by any .service files

Так кто-нибудь знает как я могу выдать приостановку на MyLocalPC, без подключения ssh к MyServer заморозке?

4
задан 13 April 2017 в 15:24

5 ответов

Просто введите <enter>~& (это три нажатия клавиш: ввод, нажатие, амперсанд) и ssh уйдет на задний план, и, в конечном итоге, само время ожидания. Это хорошо, если вы хотите просто отказаться от интерактивного сеанса в таком случае.

Или, в качестве альтернативы, поместите это в сценарий оболочки на MyLocalPC и подключите таким образом, чтобы фоновое соединение было:

ssh -f MyLocalPC go-to-sleep
0
ответ дан 13 April 2017 в 15:24

Для меня самое простое - использовать команду at:

echo 'pm-suspend' | sudo at now + 2 minutes

Затем отключиться от сеанса SSH.

0
ответ дан 13 April 2017 в 15:24

установите задачу cron на 2 минуты в будущем и отключите

0
ответ дан 13 April 2017 в 15:24

Необходимо включить переадресацию X11 с помощью ssh -Y. В качестве альтернативы используйте at now + 2 minutes для запуска команды только один раз (см. man at для получения дополнительной информации).

0
ответ дан 13 April 2017 в 15:24

Как я могу выйти из ssh, когда он блокируется? Есть много правильных решений. Один из них был упомянут Poolie; Я установил тайм-аут активности в моей системе, который будет автоматически приостанавливать зависания сеансов SSH, добавив следующее в ~/.ssh/config:

Host *
ServerAliveInterval 5
ServerAliveCountMax 4

Работает также после приостановки удаленного машина.

0
ответ дан 13 April 2017 в 15:24

Другие вопросы по тегам:

Похожие вопросы: