Katakanlah saya memiliki pid di tangan, mypid=$$
adakah perintah bash / system yang bisa saya gunakan untuk mendengarkan keluarnya proses dengan pid yang diberikan?
Jika tidak ada proses dengan mypid, saya kira perintah seharusnya gagal.
bash
shell-script
process
proc
Alexander Mills
sumber
sumber
wait
di shell atau fungsiwait()
C library. Tidak ada cara standar AFAIK untuk menunggu proses non-anak. Lebih lanjut tidak jelas apakah fungsi C # dapat melakukan itu (itu tergantung pada apa "proses terkait" itu).Jawaban:
Saya mendapatkan apa yang saya butuhkan dari jawaban ini: https://stackoverflow.com/a/41613532/1223975
..turns out menggunakan
wait <pid>
hanya akan berfungsi jika pid itu adalah proses anak dari proses saat ini .Namun berikut ini akan bekerja untuk proses apa pun:
Untuk menunggu proses apa pun selesai
Linux:
Darwin (mengharuskan yang
$pid
memiliki file terbuka):Dengan batas waktu (detik)
Linux:
Darwin (mengharuskan yang
$pid
memiliki file terbuka):sumber
Anda dapat menggunakan bash builtin
wait
:Ini menggunakan panggilan sistem
waitpid()
..sumber
bash: wait: pid 47760 is not a child of this shell
... kembali ke papan gambar lolMengenai solusi https://stackoverflow.com/a/41613532/1223975 yang diulangi oleh Alexander Mills
Timeout in Seconds
Darwin
,, adalah solusi untuk OS mirip UNIX yang tidak memiliki GNUtail
. Ini tidak spesifik untukDarwin
, tetapi, tergantung pada usia sistem operasi seperti UNIX, baris perintah yang ditawarkan lebih kompleks daripada yang diperlukan, dan dapat gagal:Pada setidaknya satu UNIX lama,
lsof
argumen+r 1m%s
gagal (bahkan untuk pengguna super):Ini
m%s
adalah spesifikasi format keluaran. Post-prosesor yang lebih sederhana tidak memerlukannya. Misalnya, perintah berikut menunggu pada PID 5959 hingga lima detik:Dalam contoh ini, jika PID 5959 keluar dengan sendirinya sebelum lima detik berlalu,
${?}
adalah0
. Jika tidak${?}
kembali1
setelah lima detik.Ini juga mungkin layak tegas mencatat bahwa
+r 1
, yang1
adalah interval polling (dalam detik), sehingga dapat diubah sesuai situasi.sumber