Katakanlah saya memiliki beberapa skrip bash yang berjalan secara paralel, dengan kode seperti berikut:
#!/bin/bash
tail -f /dev/null &
echo "pid is "$!
Apakah $!
dijamin memberi saya PID tugas latar belakang terbaru dalam skrip itu , atau apakah itu tugas latar belakang terbaru secara global? Saya hanya ingin tahu jika mengandalkan fitur ini dapat menyebabkan kondisi balapan ketika PID yang dikembalikannya berasal dari proses yang dimulai pada skrip lain.
sumber
$jobstate/$jobtext
untuk memeriksa status proses di sana. Bukan tanpa perlombaan karena anak sudah menuai pada saat jebakan dieksekusi, tetapi itu berarti jendela balapan yang sangat pendek di mana pids sangat tidak mungkin untuk digunakan kembali.