Re: [問題] sleep與-e搭配應用

作者: lgen7604   2025-06-19 05:05:21
這個 script 的設計不好,如果檔案不存在,無窮迴圈有可能卡死。
建議要設計合理的 timeout 機制,範例如下:
#!/usr/bin/env perl
my $timer = 30; # timeout after 30 min
while (1) {
if (-e $ARGV[0]) {
printf("File exist.\n");
exit 0;
}
else {
if ($timer == 0) {
print "File does not exist, timeout.\n";
exit 1;
}
sleep(60);
$timer
作者: jacky1989   2025-06-21 19:19:00
但檔案一開始就是不存在的,需要等另一隻程式創建才可以,這樣就得一直在等不是嗎?
作者: lgen7604   2025-07-25 23:37:00
你有看懂嗎?每一分鐘檢查檔案,檢查到檔案就算成功,如果檢查30次(經過30分鐘)都沒有看到檔案,程式timeout這樣才不會永遠等下去(你原本程式卡死的問題)你應該要設計一個合理的timeout時間,不是永遠一直等
作者: herculus6502 (金麟豈是池中物)   2025-07-31 22:24:00
或是用crontab

Links booklink

Contact Us: admin [ a t ] ucptt.com