Biarkan program tetap berjalan setelah menutup konsol, setelah program dimulai [duplikat]

8

Kemungkinan Duplikat:
Bagaimana cara melepaskan proses dari Terminal, sepenuhnya?

Saya punya program yang berjalan di konsol Unix di komputer Unix jarak jauh. Saya (bodohnya) tidak menjalankannya menggunakan nohup &, dan sekarang saya harus menutup konsol lokal.

Apakah ada cara untuk menjalankannya dari jarak jauh setelah menutup konsol lokal?

Ditarik
sumber

Jawaban:

12

Jika shell Anda bash, mereka dapat Anda gunakan disown. Ctrl-Z untuk menunda proses, kemudian disown -huntuk membuatnya tidak menerima SIGHUP.

Douglas Leeder
sumber
Solusi brilian.
Berhasil
3
Hanya ingin tahu: ketika prosesnya ditunda, tidakkah ini pada akhirnya harus diikuti dengan bgatau sesuatu seperti itu? Atau apakah disown -hmelanjutkannya juga?
Arjan
Apakah ini akan berhasil jika proses sedang berjalan di dalam screen? Saya ingin melanjutkan menjalankan proses xtermsebagai gantinya.
Suara
IIRC sekali tidak mengakui itu tidak akan terhubung ke terminal apa pun
Douglas Leeder
5

Pada Solaris 9, Anda dapat menggunakan nohup -p <pid>untuk menjalankan proses yang sedang berjalan. Berikut penjelasan yang menarik dari implementasinya. Saya tidak tahu apakah ini telah diterapkan pada semua Unix lainnya.

pemain coneslayer
sumber
nohup: opsi tidak valid - p Tidak berfungsi pada gentoo, ubuntu atau fedora (unix yang saya coba ini), tetapi terima kasih :-) Senang mengetahui Solaris memilikinya.
Digambar
2

Ctrl-Z untuk menunda proses, kemudian bgmenyebabkan program untuk pergi ke latar belakang dan terus berjalan sampai selesai.

Matriks Mole
sumber
Masalahnya adalah jika saya menutup konsol, proses latar belakang juga akan berhenti. Saya perlu sesuatu yang melepaskan proses dari konsol, seperti nohup lakukan, tetapi setelah proses dimulai :-)
Thrawn
Dan saya tidak berpikir 'nohup bg &' akan berhasil :-(
Diambil
1
Saya mencobanya di salah satu sistem saya dan tetap berjalan dengan baik ketika saya logout (hanya digunakan du / >> tempsebagai program uji) tetapi saya mengerti menjadi ragu-ragu jika Anda tidak ingin kehilangan program atau hasilnya.
Matrix Mole
2

Jika Anda mampu menghentikan program dan menyalakannya kembali sebelum keluar, maka hentikan dan nyalakan kembali melalui layar , yang merupakan keharusan bagi siapa saja yang menggunakan koneksi jarak jauh ke host unix.

kutu buku
sumber
1
Saya pikir masalah utama di sini adalah tepatnya dia ingin tidak menghentikan program.
Gnoupi
1
Ya, saya ingin program ini tidak dihentikan :-)
Diambil
Saya akan sangat menyarankan layar untuk penggunaan situasi seperti itu di masa depan (saya selalu memiliki sesi layar yang berjalan pada sistem apa pun yang saya punya setiap hari).
Matrix Mole
1
Beberapa tahun kemudian, saya menyadari saya bodoh karena tidak menggunakan layar :-)
Thrawn