GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara mendapatkan ID proses dari proses latar belakang?

Anda perlu menyimpan PID dari proses latar belakang saat Anda memulainya:

foo &
FOO_PID=$!
# do other stuff
kill $FOO_PID

Anda tidak dapat menggunakan kontrol pekerjaan, karena itu adalah fitur interaktif dan terkait dengan terminal pengontrol. Skrip belum tentu memiliki terminal yang terpasang sama sekali sehingga kontrol pekerjaan belum tentu tersedia.


Anda dapat menggunakan jobs -l perintah untuk mendapatkan jobL tertentu

^Z
[1]+  Stopped                 guard

my_mac:workspace r$ jobs -l
[1]+ 46841 Suspended: 18           guard

Dalam hal ini, 46841 adalah PID.

Dari help jobs :

-l Laporkan ID grup proses dan direktori kerja pekerjaan.

jobs -p adalah opsi lain yang hanya menampilkan PID.


  • $$ adalah pid skrip saat ini
  • $! adalah pid dari proses latar belakang terakhir

Berikut adalah contoh transkrip dari sesi bash (%1 mengacu pada nomor urut proses latar belakang seperti yang terlihat dari jobs ):

$ echo $$
3748

$ sleep 100 &
[1] 192

$ echo $!
192

$ kill %1

[1]+  Terminated              sleep 100

Linux
  1. Bagaimana Menangguhkan Dan Membawa Proses Latar Belakang Ke Latar Depan?

  2. Bagaimana Proses Latar Belakang Mengetahui Pidnya Sendiri?

  3. Bagaimana menjalankan proses Rsync di latar belakang

  1. Bagaimana cara mendapatkan nilai pengembalian dari PROSES ANAK?

  2. Bagaimana cara menjalankan server web Golang saya di latar belakang?

  3. Proses Linux di latar belakang - Berhenti bekerja?

  1. Cara mendapatkan proses anak dari proses induk

  2. Bagaimana cara mendapatkan hanya ID proses dalam menentukan nama proses di linux?

  3. Bagaimana cara mendapatkan semua id proses yang sedang berjalan saja?