Dalam contoh saya, saya menjalankan perintah yang membutuhkan waktu sangat lama untuk dieksekusi (beberapa jam).
Saya tidak begitu ingat apakah saya memasukkan make atau make -j4.
Tentu saja saya bisa menghentikannya dan menekan tombol atau memeriksa riwayat untuk mengetahuinya, tapi itu akan menghentikan proses dan saya tidak ingin itu terjadi (kalau-kalau sudah melakukan make -j4).
Apakah ada cara untuk mengetahui perintah mana yang dieksekusi tanpa menghentikan proses?
command-line
make
Daniel Viaño
sumber
sumber
pgrep -a make
make
Anda bisa berhenti dan mulai ulang dan itu harus mengambil di mana ia tinggalkan.Jawaban:
Jika Anda ingin melihat baris perintah penuh untuk setiap instance
make
yang berjalan di komputer Anda, buka terminal baru dan coba:pgrep
adalah program yang mencari melalui semua proses di komputer Anda. Dalam hal ini, ia mencari program yang bernamamake
. Opsi-a
memberi tahupgrep
untuk mencantumkan ID proses dan baris perintah lengkap untuk setiap proses pencocokan. (Tanpa-a
, itu hanya akan mengembalikan ID proses.) Untuk informasi lebih lanjut tentang banyak pilihan pgrep, lihatman pgrep
.sumber
pgrep
akan terlihat berbeda dari perintah yang diketik pada baris perintah.Saat jendela terminal aktif, Anda dapat menjeda (menangguhkan) proses dengan menekan Ctrl+ Z. Anda kemudian dapat mendorong pekerjaan di latar belakang dengan mengetik
bg
(pekerjaan Anda sekarang akan berlanjut di latar belakang dan pada saat yang sama Anda dapat bekerja di baris perintah; ini setara dengan memulai pekerjaan dengan&
di akhir baris perintah). Kemudian gunakan panah-kursor (atas dan bawah) untuk melihat perintah mana yang Anda gunakan. Jika Anda ingin (tetapi ini tidak perlu) Anda bisa mendapatkan pekerjaan Anda ke latar depan dengan mengetikfg
.sumber
for X in {1..1000} ; do sleep $X ; done
maka loop akan terputus dan iterasi yang tersisa tidak akan terjadi.jobs
, seperti yang ditunjukkan pada jawaban @ ichabod), dan kemudian melanjutkan melaluifg
.Saya melakukan sesuatu seperti Stefan: ^ Z untuk menghentikan pekerjaan, dan kemudian saya lari
jobs
. Jika Anda memiliki beberapa proses yang berjalan, Anda mungkin harus memilah pekerjaan mana yang Anda jeda, tetapi ini umumnya akan memberikan baris perintah. Kemudian jalankanfg
untuk melanjutkan eksekusi.sumber
Cara yang baik untuk melihat ini secara dinamis adalah menjalankan teratas, dan ini memberi tahu Anda keadaan sistem secara keseluruhan dan proses yang berjalan pada sistem.
Melakukan 'ps ux' menunjukkan proses Anda bersama dengan pid dan info lainnya, Anda dapat menggunakan keterampilan untuk mematikan beberapa dari mereka jika Anda inginkan, halaman manual untuk itu adalah sumber daya yang baik, dan melakukan keterampilan atau membunuh -9 mendapat proses yang lengket tergantung di perangkat menunggu dll. Anda juga dapat mengirim sinyal lain ke proses seperti -hup, mendapatkan daemon restart dll
Top bagus karena menunjukkan ukuran proses, waktu yang berlalu, dan status cpu saat ini serta memori dan swap.
Saya sering melakukan $ make> & make.out & dan kemudian kurang atau tail -f pada file log make.out. Sejak sekarang make terlepas sebagai proses dari sesi shell saya.
sumber