วิธีที่ถูกต้องในการทำเช่นนี้คือการใช้ Crontab - หากคุณไม่มีสิทธิ์เข้าถึง crontab คุณควรพูดกับผู้ดูแลระบบของคุณ - พวกเขาอาจไม่ต้องการให้คุณทำงานตามกำหนดเวลา ที่กล่าวไว้ก่อนที่คุณจะบอกว่าไม่มีสิทธิ์สำหรับคำสั่ง crontab ลองเรียกใช้ "crontab -e" - ผู้ใช้แต่ละคนมีไฟล์ cron ของตนเองและ crontab - จะพยายามแก้ไขของคุณ (ฉันทราบเมื่อฉันเรียกใช้ crontab ด้วยตัวเองในฐานะผู้ใช้มันก็ค้าง)
คุณสามารถทำให้งานใด ๆ ทำงานในเบื้องหลังโดยการเพิ่ม "& amp;" ต่อท้าย ตัวละครกับงาน ฉันอยากจะต่อต้านสิ่งนี้ แต่คุณสามารถเขียนสคริปต์ในขณะที่ตรวจสอบเวลาจากนั้นรอหนึ่งนาทีตรวจสอบอีกครั้ง ฯลฯ และหากตรงกับการดำเนินการคำสั่ง คุณสามารถเรียกใช้สคริปต์นี้ด้วย & amp; เพื่อรันในพื้นหลัง คุณอาจประสบปัญหาในการล้มระบบ ...
คำสั่งในการค้นหาก็คือ "หน้าจอ" สิ่งนี้ช่วยให้คุณสามารถแนบและแยกเทอร์มินัลออกจากคอนโซลซึ่งเป็นวิธีที่มีประโยชน์ในการรันบางสิ่งในพื้นหลัง แต่สามารถดูและโต้ตอบกับมันได้ (คุณสามารถคัดกรองแล้วดำเนินการโปรแกรมในเบื้องหน้าแล้วถอดออก จากหน้าจอและติดตั้งใหม่ในภายหลัง)
แก้ไข
สคริปต์เพื่อตรวจสอบเวลาหนึ่งครั้งต่อนาทีและเรียกใช้คำสั่งในเวลาที่เหมาะสม:
#! /bin/bash
RUNAT="07:54"
while [ 1 ]
do
DATE=`/bin/date +%H:%M`
if [ $DATE. = $RUNAT. ]
then
/path/to/script.sh
fi
sleep 60
done
บันทึกสิ่งนี้เป็น (ตัวอย่าง) mycron.sh, chmod 755 mycron.sh ดังนั้นมันจะทำงาน
แก้ไขบรรทัด RUNAT เพื่อเรียกใช้เมื่อคุณต้องการเรียกใช้สคริปต์จากนั้นเรียกใช้สคริปต์นี้เป็น mycron.sh & amp; ดังนั้นจึงทำงานในพื้นหลัง
สคริปต์นี้จะไม่ทำให้สแต็คใด ๆ ล้นเนื่องจากจะประมวลผลคำสั่งวันละครั้งเท่านั้น แต่จะไม่ "โยงตัวเอง"
crontab -e
ไม่อนุญาต ตามที่คุณแนะนำให้เขียนสคริปต์ที่ใช้ในขณะที่วนรอบจะไม่ทำให้กองซ้อนเกินหรือไม่ และคุณพูดถึง "รอสักครู่" มันหมายถึงการใช้sleep
?