Saya menggunakan fungsi batas waktu pada debian untuk menunggu 5 detik untuk skrip saya. Bekerja dengan baik tetapi masalah yang saya miliki adalah bahwa saya membutuhkan nilai kembali. Suka 1 untuk batas waktu dan 0 tanpa batas waktu Bagaimana saya akan melakukan ini?
Lihatlah kode saya:
timeout 5 /some/local/script/connect_script -x 'status' > output.txt
# here i need the return of timeout
Seperti yang Anda lihat connect_script saya -x 'status' mengembalikan status sebagai string dan mencetaknya ke layar (mungkin Anda tidak dapat melihat ini) Latar belakang masalah ini adalah bahwa jika server (untuk connect_script) dibekukan, skrip tidak melakukan apa-apa . Itu sebabnya saya perlu batas waktu sekitar itu. Dan ketika timeout saya ingin me-restart server. Saya bisa melakukan itu, tetapi saya tidak tahu bagaimana saya bisa melihat apakah waktu habis atau tidak ...
Menurut manual (
man timeout
):Gabungkan ini dengan pengetahuan bahwa status keluar atau nilai balik disimpan dalam variabel
$?
,, dan kami telah ...Kemudian, Anda dapat melakukan lebih banyak pemrosesan berdasarkan nilai
$RETVAL
, yang akan menjadi 124 jika habis, atau nilai lain berdasarkan status keluar dariconnect_script
.sumber
Nilai pengembalian
timeout
tergantung pada sinyal yang Anda gunakan untuk mengakhiri anak.SIGTERM
pengembalian 124:Tetapi
SIGKILL
mengembalikan 137:Lihat halaman manual:
sumber