เรียกใช้งานสคริปต์ก่อนที่จะปิดเครื่อง


21

เมื่อฉันปิดเครื่องคอมพิวเตอร์ฉันต้องการแสดงงานที่ค้างอยู่ที่ฉันต้องทำก่อนออกจากสำนักงาน ... ฉันมีแอปพลิเคชั่นในพื้นที่เพื่อจัดการงานเหล่านั้นโดยทั่วไปฉันแค่ต้องการเรียกใช้คำสั่งและปิดลงหลังจากฉันฆ่า แอปดำเนินการ


อาจเป็นประโยชน์สำหรับผู้ใช้ในอนาคต: askubuntu.com/a/747556/295286
Sergiy Kolodyazhnyy

คำตอบ:


7

คุณสามารถเพิ่มคำสั่งของคุณไปยังไฟล์/etc/gdm/PostSession/Defaultก่อนexit 0บรรทัด


ถ้าฉันไปที่ "ออกจากระบบ" ตัวเลือกมันทำงานดี แต่ถ้าฉันกดปิดปรากฏขึ้นทันทีเกือบหน้าจอออกจากระบบอูบุนตูสีม่วงอูบุนตูและรันสคริปต์ (ในหน้าจอที่ปรากฏโลโก้ ubuntu ที่มี 5 ลูกเล็ก ๆ ) (ทดสอบด้วยการนอนหลับ 20)
juanefren

กล่องโต้ตอบ "คุณแน่ใจหรือไม่ว่าคุณต้องการปิดระบบ" อยู่ที่นี่: / usr / lib / ตัวบ่งชี้ - เซสชัน / gtk-logout-helper และส่วนหนึ่งของแม่มดแพ็คเกจตัวบ่งชี้เซสชันถูกเขียนใน C / C ++ ดังนั้นมันค่อนข้างยากที่จะ แก้ไข คุณอาจมีโชคมากขึ้นที่ขอ
จดหมายข่าวจาก

6

คุณสามารถทำได้โดยการสร้างสคริปต์ใน /etc/rc0.d (สำหรับปิดระบบ) และ /etc/rc6.d (สำหรับรีบูต) หากต้องการทำสิ่งนี้ให้เรียกใช้:

gksu gedit /etc/rc0.d/K01mycustomscript

แก้ไขสคริปต์การปิดระบบของคุณในโปรแกรมแก้ไขข้อความจากนั้นเรียกใช้:

sudo chmod +x /etc/rc0.d/K01mycustomscript

และหากคุณต้องการให้มันรันในการรีบูตก็ให้รันสิ่งนี้:

sudo cp /etc/rc0.d/K01mycustomscript /etc/rc6.d/K01mycustomscript

ที่มา: กระทู้ฟอรั่มนี้


จากคำอธิบายของเขาดูเหมือนว่าเขาต้องการเรียกใช้แอพแบบกราฟิกดังนั้นจึงจำเป็นต้องเข้าถึง xserver ในกรณีนี้การใช้สคริปต์เริ่มต้นจะไม่ทำงาน
sepp2k

1
ใช่ ... ตามที่ @ sepp2k พูดว่าสคริปต์ทำงานนอก xserver :(
juanefren

4

ดูเหมือนคำถามสำหรับ superuser.com สำหรับฉัน อย่างไรก็ตามหลังจากGoogling แล้วฉันพบว่าจะรันสคริปต์เมื่อออกจากระบบได้อย่างไร? ซึ่งบอกว่าจะเพิ่มสคริปต์ใน $ HOME / .bash_logout

หากไม่ได้ผลให้เพิ่ม

$HOME/.bash_logout

เป็น / etc / gdm / PostSession / Default ดังนั้นจึงเรียกใช้งานสคริปต์ออกจากระบบอย่างถูกต้อง

เห็นว่าก่อนที่จะปิดผู้ใช้ออกจากระบบต่อไปนี้ควรจะครอบคลุมทั้งสองฐาน


1
เนื่องจากเขาอาจไม่ต้องการให้สคริปต์ทำงานทุกครั้งเขาจึงออกจากระบบทุบตี (เช่นทุกครั้งที่เขาปิดหน้าต่างเทอร์มินัล) ฉันไม่คิดว่าควรเขียนคำสั่งลงใน. bash_logout อย่างไรก็ตามการเขียนลงใน PostSession / Default ดูเหมือนว่าเป็นความคิดที่ดีสำหรับฉัน
sepp2k

มีไฟล์นี้อยู่แล้ว แต่ดูเหมือนว่ามันไม่ทำงาน (ฉันนอน 20 และมันก็ไม่รอที่จะปิด)
juanefren

.bash_logout จะไม่ทำงานเมื่อคุณปิดเทอร์มินัลมันจะทำงานเฉพาะเมื่อคุณออกจากระบบเทอร์มินัล - ล็อกอิน - เซสชัน (เช่นถ้าคุณออกจากระบบrealTTY) และไม่ใช่เมื่อคุณออกจากระบบ gnome
LassePoulsen

ทำไมนี่เป็นคำถามสำหรับ superuser หากคำถามเกี่ยวกับอูบุนตูก็เป็นเรื่องเกี่ยวกับหัวข้อ
NN

2

หากคุณ./app-to-run && sudo shutdown -h nowใช้คอมพิวเตอร์ควรปิดเครื่องเมื่อแอพทำงาน


1
นี่จะเป็นการปิดตัวของน้ำมันดิบอย่างมาก คุณต้องการเรียกสคริปต์การปิดเดสก์ท็อปแทน
txwikinger

sudo อาจขอให้ผู้ใช้พิมพ์รหัสผ่านในกรณีที่แอพดำเนินการนานพอ ... ดังนั้นมันจะไม่ปิดตัวลง
samb

1

คำตอบเดียวกับ Tommy Brunn เกือบจะเหมือนกัน แต่ไม่มีความเสี่ยงที่จะถูกถามด้วยรหัสผ่านรูท:

sudo sh -c "./app-to-run; shutdown -h now"
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.