Mam następujący scenariusz. Mam skrypty powłoki, które chcę uruchamiać zdalnie na moim komputerze Mac pro, więc ssh in, uruchamiam je bez żadnych bloków i wylogowuję się. Robiłem to od lat na maszynach opartych na systemie Linux i właśnie zacząłem wypróbowywać to na nowym komputerze Mac Pro. Jednak okazuje się, że Mac przechodzi w tryb uśpienia, gdy są one uruchomione, a ich ukończenie zajmuje znacznie więcej czasu. Oczywiście mogę wyłączyć sen w preferencjach energetycznych, ale zdecydowanie są chwile, kiedy chcę, żeby się uspokoił. Czy jest coś, co mogę zrobić, jeśli chodzi o argument wiersza poleceń, który wyłączałby uśpienie podczas procesu?
źródło
Możesz użyć,
pmset
aby tymczasowo zapobiec przejściu komputera Mac w tryb uśpienia.pmset noidle & PMSETPID=${!};sleep 10; kill $PMSETPID
Zamień na
sleep 10
swoje polecenie.Możesz także napisać funkcję i zapisać ją w
.bash_profile
.i użyj tego w ten sposób:
$ insomnia sleep 10
Polecam używać
screen
zamiastnohup
.Edycja: na nowszych komputerach Mac należy używać
caffeinate
zgodnie z opisem Grahama Milna.pmset noidle
nadal działa, ale od 10.9 jest oznaczony jako „przestarzały” w dokumentacji.źródło
Zrobiłem funkcję w moim ~ /
.bash_profile
, tak:Teraz, kiedy używam mojego „wspólnego” polecenia ssh, jest ono owinięte kofeiną, dlatego system nie może zasnąć.
Teraz, kiedy rozpoczynam sesję ssh, widzę
pmset -g
, że mówi mi:źródło