สร้างคำสั่งเชลล์สคริปต์เพื่อยกเลิกหลังจากหมดเวลาที่แน่นอน


2

ฉันมักจะมีสถานการณ์ในสคริปต์เชลล์ Linux ว่าหากคำสั่งเฉพาะใช้เวลานานเกินไปในการเรียกใช้เช่น เนื่องจากปัญหาเครือข่ายเชลล์สคริปต์ควรยกเลิกการรันคำสั่งนี้

มีวิธีปฏิบัติที่ดีที่สุดในการเรียกใช้คำสั่งการหมดเวลาในเชลล์สคริปต์ เช่น. รันคำสั่งผ่านคำสั่งการตรวจสอบบางประเภทที่มีเวลาทำงานสูงสุดที่กำหนดเป็นวินาที?

สิ่งที่ฉันกำลังมองหาคือการมีบางอย่างเช่น "หมดเวลา -s 300 'บรรทัดคำสั่งนี้'"

วิธีแก้ปัญหาของ Cron นั้นไม่ใช่คำถามและไม่ใช่คำตอบที่ยอมรับได้


1
มีแพคเกจที่เรียกว่าหมดเวลาตามเดเบียน sudo apt-get install timeout. ปัญหาคือว่าคำสั่งมีเวลาที่กำหนดให้ทำงานเท่านั้นดังนั้นหากคุณกำลังทำ timeout 300 ssh example@example.comภารกิจจะถูกฆ่าหลังจาก 300 วินาที ที่ถูกกล่าวว่ามีคำถามที่คล้ายกันใน StackOverflow กับการใช้สคริปต์ ที่นี่ ที่อาจทำมัน
nerdwaller

สวัสดี @nerdwaller: มันเป็นไปได้ที่จะส่งเสริมความคิดเห็นของคุณเพื่อตอบ
Mikko Ohtamaa

ไปไหนมันก็ใช้ได้ผลสำหรับคุณ
nerdwaller

คำตอบ:


1

มีแพ็กเกจที่เรียกว่าการหมดเวลาใช้งานการติดตั้งหมดเวลา sudo apt-get จากเดเบียน ปัญหาที่เกิดขึ้นคือคำสั่งมีเพียงเวลาที่กำหนดเท่านั้นที่จะทำงานดังนั้นหากคุณกำลัง ssh'ing และหมดเวลา 300 ssh example@example.com หมดเวลางานจะถูกฆ่าหลังจาก 300 วินาที ที่ถูกกล่าวว่ามีคำถามที่คล้ายกันใน StackOverflow กับการใช้สคริปต์ที่นี่ที่อาจทำได้

แม้ว่าฉันจะลองเมื่อวานนี้อีกครั้งและมันก็โอเคดังนั้นมันขึ้นอยู่กับว่าคำสั่งใดติดตามมัน


Kiitoksia! :) มีให้ในรูปแบบสแตนด์อโลน bashcookbook.com/bashinfo/source/bash-4.0/examples/scripts/... (ใช้ได้กับ OSX ด้วย) และนี่คือบันทึกย่อของฉันบางส่วนเกี่ยวกับการใช้คำสั่งนี้ opensourcehacker.com/2012/12/07/...
Mikko Ohtamaa
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.