OSX Launch Applicaiton khi khởi động lại?


1

Đây có vẻ là một câu hỏi kỳ lạ vì hầu hết mọi người sẽ muốn biết làm thế nào để bắt đầu một chương trình khi khởi động. Tôi đã tự hỏi nếu có một cách để OSX khởi chạy một ứng dụng khi nhấn nút khởi động lại từ menu apple.


Chỉ cần chắc chắn về những gì bạn đang hỏi, bạn nên bắt đầu chương trình nào khi menu Apple> Khởi động lại ... được nhấp và chương trình đó chạy và hoàn thành nhiệm vụ trước khi quá trình khởi động lại thực sự diễn ra. Đúng không? Thế còn khi một shutdown -r nowlệnh, khởi động lại, được ban hành trong Terminal hoặc từ một ứng dụng thì sao?
dùng3439894

Điều đó không quan trọng, tôi chỉ cần chương trình này để thực thi trên menu Apple> Khởi động lại được nhấp.
CyrodiilSavior

Như tôi đã đề cập, phương pháp của tôi hoạt động với tôi từ GUI và CLI trong OS X 10.8.5. Bạn đang sử dụng phiên bản OS X nào để tôi có thể kiểm tra theo phiên bản đó?
dùng3439894

Tôi đang sử dụng Yosemite, tôi nghĩ có thể đó là sự cố phiên bản nhưng tôi không chắc chắn.
CyrodiilSavior

Được rồi, hôm nay tôi sẽ kiểm tra với Yosemite một chút, cần phải đi cắt cỏ trước.
dùng3439894

Câu trả lời:


0

Bạn có thể thực hiện với proxy khởi động lại, tức là bạn đổi tên /sbin/reboot, ví dụ sudo mv /sbin/reboot /sbin/reboot.ori, sau đó tạo rebootliên kết tượng trưng đến /sbin/reboot_proxytập lệnh bash có lệnh bạn thực hiện trước khi khởi động lại và cuối cùng nó thực thi /sbin/reboot.ori. Tôi thực sự có thiết lập này trên máy Mac chạy OS X 10.8.5 và nó hoạt động tốt. Tôi bẫy cả hai rebootshutdownlệnh. Đó là những gì chạy khi nhấp vào menu Apple > Khởi động lại ... và hoặc Tắt ... các lệnh.

  • Lưu ý: Tốt nhất là có tập lệnh bash thứ hai để chuyển trạng thái của tệp gốc và tập lệnh bash proxy vì nó phải được đặt lại trước khi cập nhật OS X sẽ chạm vào (các) tệp.

Đây là mã trong shutdown_proxytập lệnh bash của tôi có liên kết tượng trưng cho cả lệnh rebootshutdownlệnh sau khi bản gốc được đổi tên bằng .oriphần mở rộng. Hãy thích nghi với việc sử dụng của bạn.

Nội dung của 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" "$@"

Hãy để tôi nói thêm rằng từ quan điểm bảo mật, có những người sẽ cho rằng đây là một điều xấu và tôi nói ở một mức độ nào đó là đúng trong các điều kiện phù hợp tuy nhiên vì tôi là người duy nhất đã từng và sẽ chạm vào Máy Mac của tôi và tôi có một số lớp bảo mật chạy ngoài các công cụ tích hợp, cá nhân tôi không gặp vấn đề gì khi sử dụng phương pháp như vậy.


Cảm ơn vì điều này, tôi cảm thấy như nó sẽ hoạt động nhưng vì một số lý do ngay cả sau khi thay thế nhị phân khởi động lại cũ bằng một tập lệnh bash mới thực thi những gì tôi cần, nó vẫn khởi động lại như bình thường. Tôi có thể làm điều gì sai?
CyrodiilSavior

Trên thực tế, khi chạy từ thiết bị đầu cuối, lệnh khởi động lại hoạt động, có vẻ như OSX đang sử dụng một lệnh khác khi sử dụng GUI
CyrodiilSavior

@CyrodiilSavior, Cách tôi cài đặt của tôi, cho dù tôi nhấp vào menu Apple> Khởi động lại ... và hoặc Tắt ... các lệnh hoặc chạy rebootshutdowntrong Terminal, trong "# Command (s) của tôi sẽ thực thi trước khi khởi động lại "Tất cả phần kết thúc trước khi khởi động lại / tắt máy thực tế xảy ra.
dùng3439894

0

Vì chọn Menu Apple> Khởi động lại có hiệu quả đăng xuất bạn, bạn có thể làm điều gì đó giống như được đề xuất ở đây: Chạy Script khi đăng xuất mà không cần sử dụng Logout Hook .

Tôi sẽ tránh cố gắng chỉnh sửa hoặc sửa đổi bất kỳ nhị phân hệ thống, tập lệnh, v.v. và tuân theo những gì có sẵn trong "không gian người dùng". Chủ yếu là vì bất kỳ bản cập nhật hệ thống nào cũng có thể ghi đè lên bất kỳ thay đổi nào bạn đã thực hiện và nếu bạn làm bất cứ điều gì nếu "hỏng" có thể ngăn chặn việc khởi động hoặc đăng nhập ... Chà, đó có thể là một vấn đề đau đầu.

Lưu ý: Tôi chưa có cơ hội thử nghiệm bất kỳ điều nào trong số đó, nhưng có vẻ như một vài khách hàng tiềm năng có thể ở đó.


Đó là một gợi ý hay, tôi sẽ ghi nhớ, tôi sẽ tiếp tục làm việc với @ user3439894 và phương pháp của anh ấy ngay bây giờ vì tôi cũng cần phải làm điều này trên các hệ thống linux.
CyrodiilSavior
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.