มี OSX Launch Applicaiton เมื่อรีสตาร์ทหรือไม่


1

นี่อาจดูเหมือนคำถามแปลก ๆ เพราะคนส่วนใหญ่ต้องการทราบวิธีเริ่มโปรแกรมในการบูต ฉันสงสัยว่ามีวิธีที่จะให้ OSX เปิดแอปพลิเคชันเมื่อกดปุ่มรีสตาร์ทจากเมนู Apple


เพียงเพื่อให้แน่ใจในสิ่งที่คุณถามคุณจะเริ่มโปรแกรมเมื่อเมนู Apple> เริ่มต้นใหม่ ... และโปรแกรมนั้นทำงานและเสร็จสิ้นภารกิจก่อนที่กระบวนการรีบูตจะเกิดขึ้นจริง ถูกต้องไหม จะเกิดอะไรขึ้นเมื่อมีshutdown -r nowคำสั่งซึ่งเป็นการรีบู๊ตในเทอร์มินัลหรือจากแอปพลิเคชัน
user3439894

ไม่เป็นไรฉันแค่ต้องการให้โปรแกรมนี้ทำงานบนเมนู Apple> เริ่มต้นการคลิกใหม่
CyrodiilSavior

ดังที่ฉันได้กล่าวถึงวิธีการของฉันทำงานได้สำหรับฉันจาก GUI และ CLI ภายใต้ OS X 10.8.5 คุณใช้ OS X เวอร์ชันใดฉันจึงสามารถทดสอบภายใต้รุ่นนั้นได้
user3439894

ฉันใช้โยเซมิตีฉันคิดว่าอาจเป็นปัญหารุ่น แต่ฉันไม่แน่ใจ
CyrodiilSavior

โอเควันนี้ฉันจะทดสอบกับโยเซมิตีสักหน่อยต้องตัดหญ้าก่อน
user3439894

คำตอบ:


0

มันเป็นไปได้กับพร็อกซีรีบูตเช่นคุณต้องการเปลี่ยนชื่อ/sbin/rebootเช่นsudo mv /sbin/reboot /sbin/reboot.oriแล้วสร้างrebootsymlink ไป/sbin/reboot_proxyทุบตีสคริปต์ที่มีคำสั่ง (s) /sbin/reboot.oriคุณสิ่งที่ต้องดำเนินการก่อนที่จะเริ่มต้นใหม่แล้วสุดท้ายจะรัน ฉันมีการตั้งค่านี้บน Mac ของฉันที่ใช้งาน OS X 10.8.5 และใช้งานได้ดี ฉันกำลังดักทั้งrebootและshutdownคำสั่ง มีอะไรทำงานบ้างเมื่อคลิกที่เมนูApple > คำสั่งReboot ...และหรือShut Down ...

  • หมายเหตุ: เป็นการดีที่สุดที่จะมีสคริปต์ทุบตีที่สองเพื่อสลับสถานะของไฟล์ต้นฉบับและสคริปต์ทุบตีพร็อกซีเนื่องจากต้องมีการตั้งค่าก่อนที่จะอัปเดต OS X ซึ่งจะแตะไฟล์

นี่คือรหัสในshutdown_proxyสคริปต์ทุบตีของฉันที่มีลิงก์สัญลักษณ์สำหรับทั้งสองrebootและshutdownคำสั่งหลังจากต้นฉบับถูกเปลี่ยนชื่อด้วย.oriนามสกุล อย่าลังเลที่จะปรับให้เข้ากับการใช้งานของคุณ

เนื้อหาของ reboot_proxy

#!/bin/bash

_name="$0";
echo "Reboot Proxy Executing..."

# Place command(s) to execute before reboot directly below this comment:


_command="$_name.ori"
echo "Executing $_command $@..."

"$_command" "$@"

ให้ฉันเพิ่มว่าจากมุมมองด้านความปลอดภัยมีผู้ที่จะโต้เถียงนี้เป็นสิ่งที่ไม่ดีที่จะทำและฉันจะพูดในระดับที่เป็นจริงภายใต้เงื่อนไขที่ถูกต้อง แต่เนื่องจากฉันเป็นคนเดียวที่เคยและจะเคยสัมผัส Mac ของฉันและฉันมีการรักษาความปลอดภัยหลายระดับที่ทำงานอยู่นอกเหนือจากในตัวฉันเองไม่มีปัญหาในการใช้วิธีการดังกล่าว


ขอบคุณสำหรับสิ่งนี้ฉันรู้สึกว่ามันจะใช้งานได้ แต่ด้วยเหตุผลบางอย่างแม้หลังจากแทนที่ไบนารีรีบูตเก่าด้วยสคริปต์ทุบตีใหม่ที่ดำเนินการสิ่งที่ฉันต้องการมันก็ยังรีบูตเหมือนปกติ ฉันจะทำอะไรผิดหรือเปล่า?
CyrodiilSavior

ที่จริงแล้วเมื่อรันจากเทอร์มินัลคำสั่ง reboot จะทำงานดูเหมือนว่า OSX กำลังใช้คำสั่งอื่นเมื่อใช้ GUI
CyrodiilSavior

@CyrodiilSavior วิธีที่ฉันมีการตั้งค่าของฉันไม่ว่าฉันจะคลิกเมนู Apple> Reboot ... และหรือ Shut Down ... คำสั่งหรือเรียกใช้rebootและหรือshutdownในเทอร์มินัลสิ่งที่อยู่ใน "# Command" ของฉันเพื่อดำเนินการก่อนรีบูต "ทุกส่วนเสร็จสิ้นก่อนที่จะมีการรีบูต / ปิดเครื่องจริง
user3439894

0

ตั้งแต่การเลือกแอปเปิ้ลเมนู> Reboot มีประสิทธิภาพล็อกคุณออกคุณอาจจะทำสิ่งที่ชอบเป็นข้อเสนอแนะที่นี่: เรียกใช้สคริปต์บนออกจากระบบโดยไม่ต้องใช้ตะขอออกจากระบบ

ฉันจะหลีกเลี่ยงการพยายามแก้ไขหรือแก้ไขไบนารีระบบสคริปต์ ฯลฯ และยึดติดกับสิ่งที่มีอยู่ใน "userspace" ส่วนใหญ่เป็นเพราะการอัปเดตระบบใด ๆ สามารถเขียนทับการเปลี่ยนแปลงใด ๆ ที่คุณทำและถ้าคุณทำอะไรที่ถ้า "เสีย" สามารถป้องกันการบูตหรือเข้าสู่ระบบ ... ดีนั่นอาจเป็นอาการปวดหัวที่สำคัญ

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


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