ปิดเครื่องอัตโนมัติตามเวลาที่กำหนด?


18

ฉันรู้ว่าฉันสามารถใช้ (sudo?) shutdown -h hh:mmในหน้าต่างเทอร์มินัลเพื่อปิดระบบอย่างไรก็ตามผู้ใช้ที่เข้าสู่ระบบเป็นผู้ใช้คีออสก์ซึ่งถูกล็อคในลักษณะที่เทอร์มินัล (หรือหน้าต่างอื่นนอกเหนือจาก firefox) สำหรับเรื่องนั้น) ไม่สามารถเปิดได้

คำถามของฉันคือ:
มีวิธีที่ฉันสามารถทำได้โดยไม่ต้องเปิดหน้าต่างเทอร์มินัลหรือไม่? ฉันอ่านเกี่ยวกับ cron แล้ว แต่ก็ไม่สามารถทำได้
ฉันจะเปลี่ยนเวลาการปิดเครื่องได้อย่างไรขึ้นอยู่กับว่าเป็นวันใด


คุณต้องการปิดเครื่องในเวลา 02:00 น. หรือไม่?
αғsнιη

ไม่ขอโทษนั่นเป็นเพียงสิ่งที่ใช้ในตัวอย่างที่ฉันอ่าน ปกติเวลา 11:30 น. แต่ฉันสงสัยว่ามีวิธีระบุเวลาต่างกันในแต่ละวันหรือไม่?
MrAxlee

1
คุณสามารถอ้างถึง url สำหรับการปิดเครื่องอัตโนมัติ askubuntu.com/questions/19774/…
vembutech

1
@vembutech คำถามนั้นมีไว้สำหรับการปิดตัวลงหลังจากผ่านช่วงเวลาหนึ่งไปแล้ว - ไม่ได้ปิดตัวลงในช่วงเวลาหนึ่ง - แม้ว่ามันจะง่ายต่อการนำมาใช้กับความต้องการของฉันฉันยังคงไม่สามารถเปิดหน้าต่างเพิ่มเติมนอกเหนือจาก Firefox ขอบคุณสำหรับการตอบกลับของคุณ! มันดูเหมือนง่ายกว่าการใช้ cron และผมมักจะใช้สำหรับการใช้งานอื่น ๆ :)
MrAxlee

@MrAxlee ... ดังนั้นคุณต้องการให้ระบบปิดnชั่วโมงหลังจากเปิดเครื่อง
Kaz Wolfe

คำตอบ:


30

Cron จะทำงานได้ดีมากสำหรับเรื่องนี้

เพิ่มบรรทัดด้านล่าง (พร้อม tweaks) ที่ส่วนท้ายของ/etc/crontab:

30 23 * * * root shutdown -h now

เวลา 23:30 น. (23:30 น.) ตู้จะปิดตัวลง ไม่ว่าผู้ใช้รายใดจะเข้าสู่ระบบคำสั่งปิดเครื่องจะทำงานในฐานะผู้ใช้

(หากคุณไม่ต้องการใช้ Global crontab ให้ล็อกอินด้วย root และใช้crontab -eใช้ไวยากรณ์ข้างต้นโดยไม่ต้องใช้root)


รูปแบบ Cron:

MM HH DD OO WW command

MM: นาที, 0-59
HH: 24 ชั่วโมง
DD: วันของเดือน
OO: เดือน
WW: วันของสัปดาห์ (วันอาทิตย์คือ 0, วันจันทร์คือ 1)
command: อธิบายตนเอง


@JacobVlijm มีการเพิ่มเมื่อใด ฉันไม่เห็นมันอย่างเป็นทางการในเอกสาร Cron
Kaz Wolfe

1
ฉันจะดูมัน ...
Jacob Vlijm

1
จาก crontab (5): รูปแบบของระบบ crontab, / etc / crontab รวมถึงคอลัมน์ที่ไม่มีอยู่ใน crontabs ผู้ใช้ ในระบบ crontab cron จะรันคำสั่งตามที่ผู้ใช้ระบุในคอลัมน์นี้ ในผู้ใช้ crontab คำสั่งทั้งหมดจะทำงานในฐานะผู้ใช้ที่สร้าง crontab
Jacob Vlijm

@Whaaaaaat คำตอบที่ยอดเยี่ยมทำงานได้อย่างสมบูรณ์ขอบคุณ! ความแตกต่างระหว่าง-hและ-sคืออะไร?
MrAxlee

1
@MrAxlee -sดูเหมือนจะไม่เป็น "ไวยากรณ์ที่ถูกต้อง" -hหมายถึงการหยุดหรือปิดระบบ (ตัวเลือกของระบบ - เลือกปิดระบบ)
Kaz Wolfe

6

cronjob ดูเหมือนจะเป็นวิธีที่ดีที่สุดเพราะคุณสามารถระบุเวลาที่แตกต่างกันในแต่ละวัน ในระบบที่ใช้ Gnome คุณสามารถติดตั้งGNOME Shedule Tasks ได้โดยใช้

sudo apt-get install gnome-schedule

จากนั้นกำหนดค่า cronjob โดยใช้ GUI

มิฉะนั้นคุณจะต้องใช้sudo crontab -eแล้วเพิ่มบรรทัดต่อไปนี้

30 11 * * 1-5 /sbin/shutdown -h now
30 10 * * 0,6 /sbin/shutdown -h now

สิ่งนี้จะปิดเครื่องคอมพิวเตอร์เวลา 11:30 น. ตั้งแต่วันจันทร์ถึงวันศุกร์และเวลา 10:30 น. ในวันเสาร์และวันอาทิตย์ โครงสร้างง่ายมาก:

minute (0-59), hour (0-23, 0 = midnight), day (1-31), month (1-12), weekday (0-6, 0 = Sunday), command 

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับสิ่งนี้คุณสามารถลองCronHowto


2
ฉันต้องใช้เฉพาะ/sbin/shutdownแทนshutdownเพราะ cron root ของฉันแตกต่างจากเทอร์มินัลฉันลองใช้สคริปต์ของฉัน
Jaakko

3

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

หากคุณต้องการปิดระบบเวลา 18:30 น. ทุกวัน พิมพ์ใน terminal:

sudo crontab -e

แก้ไข

30 18 * * * poweroff

@mrm มีวิธีทางเลือกอาจมีวิธีแก้ไขปัญหาต่าง ๆ มากมายโดยเฉพาะและคำตอบดังนั้น มันมีประโยชน์หรือไม่? กรุณาฉันขอให้คุณไม่ลงคะแนนเพื่อตอบหรือคำถามหากคุณไม่ชัดเจนเกี่ยวกับเรื่องนี้ อ่านคำถามอย่างถูกต้องและดูว่าคำตอบนั้นใช้กับคำถามนั้นหรือไม่ หากคุณยังมีปัญหาใด ๆ คุณมีอิสระที่จะถามเกี่ยวกับ Ask Ubuntu Metaหรือที่นี่แล้วตัดสินใจ
เดซี่

ในหนึ่งบรรทัด crontab คุณมีสองประเด็น: poweroffข้ามสคริปต์การปิดระบบซึ่งอาจสำคัญพูดปิดฐานข้อมูลของคุณอย่างปลอดภัยหรืออะไรก็ตามและคุณมีปัญหาsudoใน crontab ที่ไม่จำเป็น คุณไม่ได้ระบุวิธีอ้างอิงวันที่ต่างกันของสัปดาห์ตามคำถามที่ถาม ไม่ใช่นี่ไม่ใช่วิธีการอื่น ตามที่มันเป็นสองข้อผิดพลาดและการละเว้น อีกสองคำตอบที่ทำไว้หนึ่งปีก่อนที่คุณจะถูกต้องและใช้งานได้จริง
MRM

@mrm ดีฉันใช้สคริปต์นี้ในช่วงสามปีที่ผ่านมาและฉันไม่เห็นปัญหาใด ๆ และใช่ทางเลือกนี้และยังแก้ไขวิธีที่มีประโยชน์ Que คือการปิดเครื่องอัตโนมัติตามเวลาที่กำหนด มีคำสั่งให้ปิดเครื่องและตามเวลาที่กำหนดไว้โดยอัตโนมัติเราสามารถใช้ crontab ตามความต้องการของเรา มันจะดีกว่าถ้าคุณถามคำถามอื่นเกี่ยวกับปัญหาของคุณ
เดซี่
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.