Bagaimana saya menjalankan skrip di latar belakang dan membiarkannya tetap berjalan saat saya logout? [duplikat]

7

Kemungkinan Duplikat:
Biarkan skrip bash tetap berjalan di terminal jarak jauh saat tidak masuk?

Saya memiliki skrip bash yang menjalankan Gaussian, kalkulator struktur kimia, yang menghabiskan beberapa hari mempermainkan molekul. Ini berjalan pada kotak Linux di mana saya memuat file input dan mengatakan skrip ke, maka saya (seharusnya) menjalankannya, tunggu sebentar, berharap program tidak crash, dan masuk kembali untuk mengumpulkan hasilnya.

Agak dari pemula * nx, tapi sepertinya saya tidak tahu cara mengatur skrip berjalan dan memutuskan sambungan, sambil membiarkannya melanjutkan.

./jobscript

tampaknya memblokir sampai selesai, dan jika saya memutuskan itu berakhir

./jobscript &

tidak memblokir, saya bisa melihatnya berlari masuk top, jadi saya pikir itu baik-baik saja, tetapi saat keluar ternyata mematikan program.

Bagaimana cara mengatur hal untuk dijalankan dan tetap berjalan, meskipun saya logout?

Nick T
sumber

Jawaban:

8

Anda ingin menggunakan program ini screen. Berikut adalah halaman manual untuk itu, dan di sini adalah tutorial yang bagus. Itu harus melakukan apa yang Anda inginkan - jalankan sesuatu di latar belakang dan dapat kembali lagi nanti.

charliehorse55
sumber
Sepertinya screenlebih baik bagiku saat tersandung di dunia baru; sudah cukup jelas ketika saya menjalankan skrip (pemblokiran) dan ia mati karena beberapa kesalahan sintaks atau input salah bentuk saat ia kembali segera.
Nick T
8

Anda dapat gunakan:

nohup /path/to/script >output 2>&1 &
Xenoaktif
sumber
2

nohup

nohup - jalankan perintah kebal terhadap hangup, dengan output ke non-tty

- man nohup

Greg Mattes
sumber
1

Dengan bash:

my_program &
disown -h %1

Ubah nomor untuk nomor pekerjaan Anda yang sebenarnya (lihat jobsjuga builtin)

glenn jackman
sumber