nohup lub proces trwały na ssh Mac OS X.

9

Wiem, że już o to pytano, ale żadna z odpowiedzi nie działa w OS X Mountain Lion. Chciałbym uruchomić proces przez SSH i zamknąć terminal bez zabijania tego procesu.

nohup ccl64 -e '(ql:quickload :"file")' & 

Nie działa Gdy terminal jest zamknięty, proces umiera.

nohup ccl64 -e '(ql:quickload :"file")'

To samo tutaj.

Myślę, że musi być jakiś sposób. Jest to bardzo denerwujące, ponieważ działa standardowo w dowolnym systemie Linux, ale Mac OS X odmawia współpracy z którąkolwiek z tych kombinacji.

bmike
źródło

Odpowiedzi:

9

Jedną rzeczą, która zawsze działa, jest screen. http://ss64.com/osx/screen.html wydaje się, że jest domyślnie dostępny w Mac OS X.

Edytuj: http://web.archive.org/web/20130413070916/http://macdevcenter.com/pub/a/mac/2004/07/06/unix_gems.html kolejny ekran samouczka.

Dodatkowo, oto kilka szybkich wskazówek, jak używać screen

Otwórz nową instancję „ekranu”

$ screen

Raz na ekranie możesz „odłączyć” (lub zamknąć) ekran w następujący sposób:

ctrl+A and then press D

Aby wznowić ekran, zwykle robisz to:

$ screen -x

Jeśli masz więcej niż jedną instancję ekranu, podadzą ci ich identyfikatory, w którym to przypadku możesz wybrać, który chcesz wznowić w ten sposób:

$ screen -r <screen id>
chx
źródło
więc przez ssh wykonuję screen, a następnie przekazuję polecenie nohup? z czy bez & na końcu?
Nie ma potrzeby nohup. Po prostu wykonaj screen ccl64 ... i. Później, jeśli zajdzie taka potrzeba, możesz ponownie połączyć się z ekranem -R, aby monitorować postępy. Alternatywnie, po prostu uruchom screen i wpisz tam polecenie, możesz odłączyć za pomocą Ctrl + A D.
chx
dzięki, że możliwe jest zapisanie danych wyjściowych ekranu w pliku po uruchomieniu?
Oczywiście ekran może zrobić wszystko. Chcesz screen -X hardcopy. Zobacz bbs.archlinux.org/viewtopic.php?id=47521, aby uzyskać więcej.
chx
5

Spróbuj screenzamiast tego, nadal powinna być częścią domyślnej instalacji. Niektóre osoby używają nawet ekranu jako domyślnej powłoki, więc nie muszą się martwić o nic.

Sven
źródło
2
czy możesz opisać, jak uruchomić polecenie nohup z screenem?
Używasz screena zamiast nohup, a następnie odłączasz ekran. Twój program będzie działał nawet po zakończeniu sesji ssh.
Sven
Zobacz man screenszczegóły.
Sven