Saat ini saya sedang menjalankan aplikasi Java dengan SSH-ing ke VM di Google Cloud Compute. Saya mengeluarkan perintah untuk menjalankan aplikasi dan memuat konsol. Segera setelah saya mengakhiri koneksi SSH, aplikasi dimatikan. Saya berasumsi ini karena konsol telah ditutup.
Saya ingin aplikasi ini (yang merupakan server) bertahan setelah saya menghentikan SSH, dan, pada titik mana pun, saya ingin dapat menyambung kembali ke konsol dan mengeluarkan perintah di server.
Jawaban:
Anda menyatakan ini:
Golnya sedikit kabur, tapi aku akan menusuknya!
Untuk menjalankan perintah apa pun sebagai proses latar belakang pada server Linux, Anda harus menambahkan dulu perintah itu
nohup
dan menambahkannya&
sampai akhir.Jadi perintah terakhir adalah:
The
nohup
berarti perintah harus mengabaikan “hang up” dan ampersand&
ditambahkan untuk itu adalah perintah shell yang memberitahu sistem untuk menjalankan perintah sebagai proses latar belakang. Informasi lebih lanjut tentang penggunaannya dapat ditemukan di sini .Ketika Anda menjalankan perintah seperti ini, proses akan berjalan, Anda akan dikirim kembali ke prompt perintah dan Anda dapat keluar dari sesi terminal atau bahkan pergi dan melakukan sesuatu yang tidak terkait dengan perintah itu selama sesi terminal itu.
sumber
screen
karena itu memungkinkan Anda untuk kembali ke sesi setelah peluncuran. Sejujurnya pertanyaan Anda tidak jelas, jadi jika Anda bisa mengklarifikasi, itu bisa membantu menyelesaikannya.tail -f nohup.out
dalam pekerjaan yang sama. dir.Setidaknya ada tiga cara untuk melakukan ini:
nohup
('no hang up'),screen
/tmux
, ataudisown
. Ini sedikit tidak jelas dari pertanyaan Anda tentang kebutuhan Anda untuk terhubung ke server dan berinteraksi dengan daemon setelah Anda memutuskan sambungan.Jika ini masalahnya,
nohup
dandisown
tidak akan cocok dengan Anda saat melepaskan proses (meskipun terus berjalan).tmux
(Dan jugascreen
) akan membuat istilah berjalan bahkan ketika Anda.Untuk info lebih lanjut Anda dapat melihat halaman masing-masing:
Bash disown (dengan asumsi Anda menjalankan Bash, meskipun banyak shell lain termasuk yang serupa)
sumber
disown
perintah di Google Cloud, setidaknya contoh yang saya gunakan, mulai 2019 atau akhir 2018.nohup
Perintah itu berfungsi dengan baik, tetapi itu membuat file tambahan yang mungkin tidak diinginkan.Untuk melepaskan aplikasi dari shell yang berjalan, membuatnya bertahan setelah shell keluar, gunakan
nohup
perintah.Anda cukup awali perintah normal Anda dengan
nohup
dan itu akan berfungsi.sumber
Juga jika nohub tidak berfungsi, Anda dapat menggunakan layar :
dari
sumber