proses nohup atau persisten pada Mac OS X ssh

9

Saya tahu ini telah ditanyakan sebelumnya tetapi sepertinya tidak ada jawaban yang berfungsi di OS X Mountain Lion. Saya ingin meluncurkan proses melalui SSH dan menutup terminal tanpa mematikan prosesnya.

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

Tidak bekerja Ketika terminal ditutup, proses mati.

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

Sama disini.

Saya pikir pasti ada jalan. Ini sangat menjengkelkan karena berfungsi sebagai standar dalam sistem Linux apa pun, namun Mac OS X menolak untuk bekerja dengan kombinasi ini.

bmike
sumber

Jawaban:

9

Satu hal yang selalu berhasil adalah screen. http://ss64.com/osx/screen.html tampaknya tersedia di Mac OS X per default.

Edit: http://web.archive.org/web/20130413070916/http://macdevcenter.com/pub/a/mac/2004/07/06/unix_gems.html layar tutorial berbatasan lainnya.

Selain itu, berikut adalah beberapa kiat cepat tentang cara menggunakan screen

Buka contoh 'layar' baru

$ screen

Sekali, di layar, Anda dapat 'melepaskan' (atau menutupnya) layar seperti ini:

ctrl+A and then press D

Untuk melanjutkan layar, Anda biasanya melakukan ini:

$ screen -x

Jika Anda memiliki lebih dari satu instance layar, ia akan memberi tahu ID mereka, sehingga Anda dapat memilih yang mana untuk dilanjutkan seperti ini:

$ screen -r <screen id>
chx
sumber
jadi lebih dari ssh saya melakukan layar dan kemudian meneruskan perintah nohup? dengan atau tanpa & pada akhirnya?
Tidak perlu nohup. Lakukan saja layar ccl64 ... &. Nanti, jika perlu, Anda bisa menghubungkan kembali dengan layar -R untuk memantau kemajuan. Atau, jalankan saja layar dan ketik perintah di sana, Anda dapat melepaskan dengan Ctrl + A D.
chx
terima kasih dimungkinkan untuk menyimpan output layar dalam file setelah peluncuran?
Tentu saja, layar dapat melakukan segalanya. Anda ingin layar -X hardcopy. Lihat bbs.archlinux.org/viewtopic.php?id=47521 untuk informasi lebih lanjut.
chx
5

Coba screensaja, itu harus tetap menjadi bagian dari instalasi default. Beberapa orang bahkan menggunakan layar sebagai shell default mereka sehingga mereka tidak perlu khawatir tentang nohup sama sekali.

Sven
sumber
2
dapatkah Anda menjelaskan cara menjalankan perintah nohup dengan layar?
Anda menggunakan layar bukannya nohup, dan kemudian lepaskan layar. Program Anda akan terus bekerja bahkan jika sesi ssh berakhir.
Sven
Lihat man screendetailnya.
Sven