Kiedy ssh do komputera OS X w mojej sieci, sesja trwa, dopóki OS X nie przejdzie w tryb uśpienia .
Czy istnieje sposób, aby temu zapobiec podczas sesji SSH , oprócz fizycznego uderzenia myszy lub pisania na klawiaturze lub ręcznego wyłączenia funkcji uśpienia?
EDYCJA: Sesja normalnie byłaby zwykłym montowaniem sshfs.
ssh
osx
power-management
Stefan
źródło
źródło
Odpowiedzi:
To nie jest gotowe rozwiązanie, ale prawdopodobnie zadziała, jeśli nikt inny nie wymyśli rozwiązania :-)
Możesz manipulować ustawieniami zarządzania energią za pomocą polecenia
pmset
. Więcej informacji na ten temat znajduje się na stronie podręcznika .Interesującym ustawieniem, którym chcemy manipulować, jest sen :
Możemy więc użyć następujących poleceń:
Teraz musimy uruchomić te polecenia po zalogowaniu i zalogowaniu. Jeśli dobrze pamiętam, Bash jest domyślną powłoką dla systemu Mac OS X, która przenosi nas do tych dwóch plików:
Edytuj lub utwórz je w katalogu domowym i dodaj odpowiednie polecenia. Jeśli chcesz, zapisz bieżącą wartość uśpienia w pliku tymczasowym i przywróć ją później.
Ostatnim problemem do rozwiązania jest monit o hasło sudo. Aby dać użytkownikowi uprawnienia do wywoływania pmset bez hasła, edytuj plik / etc / sudoers za pomocą sudoedit. Musisz użyć
NOPASSWD
tagu. Jeśli jest to dla Ciebie nowe, zapoznaj się z instrukcją sudoers .źródło
To pozwoliło mi używać mojego Maca przez SSH bez względu na wszystko, o ile Mac jest podłączony do źródła zasilania.
Wszystko wyłącza się, gdy Mac odłącza się od źródła zasilania, więc nie musisz się martwić o żywotność baterii.
źródło
Wbudowane w OS X narzędzie pmset ma ustawienie, które może robić, co chcesz. Sprawdź na stronie
pmset
podręcznikattyskeepawake
ustawienia i towarzyszące im wyjaśnienia.Następujące polecenie prawdopodobnie zrobi to, co chcesz:
-c
Flag czyni to ustawienie aktywnej szczególnie wtedy, gdy komputer jest zasilany z sieci elektrycznej (w przeciwieństwie do baterii lub zasilania UPS) orazttyskeepawake 1
zapobiega jego spanie podczas aktywnej sesji tty (przypuszczalnie zdalnego jeden). Umożliwi to uśpienie, jeśli sesja była nieaktywna dłużej niż timer uśpienia, ale jeśli to jest problem, być może komputer w ogóle nie powinien być ustawiony na sen.źródło
Aby użyć SSH, aby otworzyć powłokę na zdalnym komputerze OSX i zapobiec jego uśpieniu na czas sesji SSH:
źródło
Od wersji Mac OS X 10.8 polecenie powinno być możliwe
caffeinate(8)
.Spróbować
caffeinate -s ssh server.example.com
.źródło
Dodałem następujący skrypt w
.bash_profile
Jeśli proces jest bezpośrednim potomkiem demona ssh, uruchom tę samą powłokę za pomocą komendy caffeinate (8), aby zapobiec uśpieniu systemu podczas sesji ssh.
źródło
Wyszukiwarka Mac zapobiegająca zasypianiu zawiera wiele dobrych informacji na temat narzędzi i sztuczek, których możesz użyć.
Jednak w twojej sytuacji podejrzewam, że tak naprawdę chcesz zrobić oddzielną sesję ssh, która uruchamia bardzo prosty program wiersza poleceń, który zapobiega uśpieniu komputera Mac. Apple podaje pełny kod źródłowy w dziale pytań technicznych 1160: Zapobieganie zasypianiu . (Niestety ta strona jest obecnie uszkodzona w witrynie Apple, ale możesz pobrać kopię z pamięci podręcznej Google).
Nie testowałem, aby sprawdzić, czy ten program można pomyślnie uruchomić z sesji ssh, ale wygląda na to, że mógłby.
Zauważ, że implementacje sshfs zwykle nie pozostają cały czas zalogowane w systemie zdalnym i po prostu uruchamiają sesję, kiedy chcą pliku lub katalogu. Potrzebujesz więc osobnej sesji ssh, działającej w zminimalizowanym oknie terminala, aby uruchomić program bezsenności.
Zaletą tego podejścia jest to, że nie trzeba używać sudo ani bałaganu w ustawieniach zarządzania energią systemu.
źródło