Minta maaf sebelumnya untuk pertanyaan yang mungkin sederhana. Saya memiliki beberapa pertanyaan mendasar tentang penggunaan ssh untuk menjalankan program yang tidak dapat saya selesaikan melalui Google. Saya menggunakan Unix (melalui program "Terminal" di Mac OS 10.6.7).
Saya mengakses mesin yang berbeda menggunakan ssh. Sesampai di sana, saya menjalankan beberapa kode. Ini menghasilkan file output dalam direktori pada mesin itu. Saya mengakhiri menjalankan dengan melakukan "kontrol C." Saya menyingkirkan file output dengan melakukan:
find . -type f -name "*.vtk" -exec rm -f {} \;
Masalahnya adalah:
Orang yang mesinnya memberi tahu saya ada beberapa versi dari kode saya yang berjalan. Saya tidak mengerti bagaimana saya tidak menghentikan ini dengan melakukan "kontrol C." Adakah yang bisa menjelaskan?
Juga (ini mungkin terkait dengan masalah pertama), ketika saya menjalankan perintah "find" di atas untuk menyingkirkan file output, jika saya menunggu beberapa detik / menit, beberapa file output telah muncul lagi! Mungkinkah ini terkait dengan versi "hantu" dari kode yang sedang berjalan, yang tidak bisa saya hentikan?
Jika ada yang bisa memberi tahu saya cara memastikan saya telah menghentikan SEMUA berjalan dan bagaimana menyingkirkan SEMUA vtk (atau akhiran lainnya) file output dari direktori, saya akan sangat menghargai itu. Juga, setiap saran mengenai sumber daya online tentang semua hal ssh ini akan sangat disambut baik. Terima kasih banyak.
Ctrl+C
biasanya menghentikan program yang berjalan di terminal, tetapi program diizinkan untuk menangkap sinyal. Juga, jika program terdiri dari beberapa proses, mungkin saja tidak semua proses akan dimatikan. Apakah Anda menulis program itu, atau hanya pengguna saja? Program apa itu? Varian apa dari unix yang berjalan pada mesin jarak jauh? Apa perintah ssh yang Anda gunakan untuk menjalankan program?uname -sr
pada mesin jarak jauh untuk melihat varian unix apa yang sedang berjalan. Apakah Anda menggunakanfork
atau memberi tanda penangan dalam program Anda, atau perpustakaan yang mungkin menggunakannya di bawah tenda?Jawaban:
Jika Anda tidak menggunakan alat seperti
screen
semua program Anda yang berjalan akan berakhir setelah Anda keluar dari sesi ssh Anda. JugaCtrl + C
akan menghentikan proses latar depan yang sedang berjalan. Jika Anda memulai beberapa proses latar belakang (baik dengan&
di akhir perintahCtrl + z, bg
Anda atau Anda dapat membuatnya menjadi proses latar depan dengan mengetikfg
.Program ini
ps
memungkinkan Anda untuk melihat program yang sedang berjalan. Di sana Anda akan melihat 'instance yang masih berjalan'. Anda dapat menghentikannya menggunakankill -9 <PID>
ataukillall -9 <prog-name>
.sumber
kill -1
sebagai pengguna (tidak pernah root) yang membunuh semua proses yang dimiliki oleh pengguna itu.