Mengenai 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 GNU tail. Ini tidak spesifik untuk Darwin, tetapi, tergantung pada usia sistem operasi seperti UNIX, baris perintah yang ditawarkan lebih kompleks daripada yang diperlukan, dan dapat gagal:
lsof -p $pid +r 1m%s -t | grep -qm1 $(date -v+${timeout}S +%s 2>/dev/null || echo INF)
Pada setidaknya satu UNIX lama, lsofargumen +r 1m%sgagal (bahkan untuk pengguna super):
lsof: can't read kernel name list.
Ini m%sadalah spesifikasi format keluaran. Post-prosesor yang lebih sederhana tidak memerlukannya. Misalnya, perintah berikut menunggu pada PID 5959 hingga lima detik:
lsof -p 5959 +r 1 | awk '/^=/ { if (T++ >= 5) { exit 1 } }'
Dalam contoh ini, jika PID 5959 keluar dengan sendirinya sebelum lima detik berlalu, ${?}adalah 0. Jika tidak ${?}kembali 1setelah lima detik.
Ini juga mungkin layak tegas mencatat bahwa +r 1, yang 1adalah interval polling (dalam detik), sehingga dapat diubah sesuai situasi.