Làm cách nào để tắt quy trình Game Center (đã chơi) trên OS X 10.11 El Capitan?


10

Có vẻ như tôi không thể chỉnh sửa tệp plist từ LaunchAgents - ngay cả khi tôi sudo, tôi không bị xóa / thay đổi. Tôi có nhất thiết phải vô hiệu hóa SIP để làm điều này không?


Bạn đã thử nó và xem những gì xảy ra?
Tetsujin

Câu trả lời:


16

Vô hiệu hóa LaunchAgent (không phải LaunchDaemons) và khởi động lại máy của bạn ( không có sudo):

$ launchctl unload /System/Library/LaunchAgents/com.apple.gamed.plist

Trong trường hợp bạn muốn kích hoạt lại tại một thời điểm:

$ launchctl load /System/Library/LaunchAgents/com.apple.gamed.plist

1
nó nói: / System / L Library / LaunchAgents / com.apple.gamed.plist: Không thể tìm thấy dịch vụ được chỉ định Tôi vào ngày 10.11.2; cám ơn vì sự gợi ý!
jrgd

Tôi chỉ thử nó trên máy của tôi và nó hoạt động tốt. Cùng một hệ điều hành (10.11.2). Bạn đã sao chép và dán lệnh từ câu trả lời của tôi? Chỉnh sửa: đảm bảo không sử dụngsudo
frdmn

vâng tôi đã làm; cũng kiểm tra bên trong thư mục và tập tin plist có ở đó bạn đã loại bỏ SIP / rootless trong quá khứ không?
jrgd

Không, tôi chưa: paste.frd.mn/loyon - Bạn có thấy dịch vụ trong launchctl listkhông?
frdmn

1
Bạn được chào đón!
frdmn

9

Theo chủ đề này, bạn có thể làm:

defaults write com.apple.gamed Disabled -bool true

Và để kiểm tra trạng thái hiện tại của daemon, hãy sử dụng:

defaults read com.apple.gamed Disabled

2

Một giải pháp là tạo một tập lệnh bash để dừng dịch vụ đã chơi sau khi bạn đăng nhập. Sử dụng Automator trong OS X để tạo tập lệnh bash sau đó thêm nó làm Mục đăng nhập vào tài khoản OS X của bạn. Lần sau khi đăng nhập, bạn sẽ nhận được lời nhắc thực thi tập lệnh. Thông thường tôi đợi cho đến khi tôi thấy một cảnh báo từ Little Snitch đã chơi trò chơi đang gọi điện về nhà, sau đó tôi nhấp vào 'Tiếp tục' để chạy tập lệnh. Điều này chưa được hoàn thiện và bạn có thể gặp phải sự cố nếu bạn chạy nó ngay lập tức sau khi bạn đăng nhập vào OS X. Tôi muốn tránh xa các giải pháp vô hiệu hóa dịch vụ vì những yêu cầu vô hiệu hóa / ghi đè SIP mà tôi khuyên.

Đây là kịch bản bash tôi sử dụng. Bất kỳ đề xuất về cải thiện nó đều được chào đón.

    #!/bin/bash
        chkService=gamed
        chkCount=10
        chkStatus=$(ps ax | grep "$chkService" | grep -v grep | grep " T " | wc -l)
        while [ $chkStatus -ne 1 ]; do
            chkProcess=$(ps ax | grep -v grep | grep "$chkService" | wc -l)
            if [ $chkProcess -ne 0 ];
            then
                KILLALL -STOP "$chkService"
                chkCount=0
                chkStatus=$(ps ax | grep gamed | grep -v grep | grep " T " | wc -l)
            else
                SLEEP=1
                chkCount=$((chkCount-1))
            fi
        done

2

Vấn đề là câu trả lời được chấp nhận ở trên:

launchctl unload /System/Library/LaunchAgents/com.apple.gamed.plist

công việc ngắn hạn. Tôi cũng đã nhìn thấy nó bằng cách sử dụng -wcờ. Trong mọi trường hợp, trong các bản cập nhật gần đây, tôi nghĩ xung quanh El Capitan hoặc Yosemite, thay vào đó bạn nhận được một tin nhắn

Hoạt động không được phép trong khi Bảo vệ toàn vẹn hệ thống được tham gia

Bảo vệ tính toàn vẹn hệ thống cũng được biết đến bởi từ viết tắt SIP. Để vô hiệu hóa nó, bạn cần khởi động vào Recovery OS và chạy csrutil disable.

Tôi đã thực hiện chuỗi này trong các bản phát hành trước và nó đã dẫn đến việc có thể vô hiệu hóa trò chơi thông qua launchctllệnh.

Tôi cho rằng sau khi chơi game bị vô hiệu hóa, người ta có thể kích hoạt lại SIP. Có lẽ đó sẽ là điều tốt nhất của cả hai thế giới, mặc dù đó là một quá trình tẻ nhạt.


0

những gì về sudo launchctl unload /System/Library/Launch\ Daemons/com.apple.gamed.plist?


/ Hệ thống / Thư viện / Khởi chạy Daemons / com.apple.gamed.plist: Không có tệp hoặc thư mục như vậy --- Tôi vào ngày 10.11.2 (cảm ơn vì đã gợi ý)
jrgd

xấu của tôi, đó là LaunchAgent: sudo launchctl unload / System / Library / Launch \ Agents / com.apple.gamed.plist
PEM8000

cảm ơn; thư mục là LaunchAgents trên máy của tôi; khi sử dụng đúng đường dẫn tôi nhận được "Không thể tìm thấy dịch vụ được chỉ định" khiến tôi buồn
jrgd

0

trên OS Sierra, đi tới Cài đặt hệ thống, Tài khoản Internet và xóa (trừ đi) Trung tâm trò chơi trong danh sách (bên trái).


Điều này chỉ xóa tài khoản Game Center và không vô hiệu hóa quy trình đã chơi. Ngoài ra, câu hỏi này là về El Capitan chứ không phải Sierra. Vui lòng xem Cách trả lời để biết các mẹo về cách cung cấp câu trả lời hay cho câu hỏi. - Từ đánh giá
fsb

0

Điều này làm cho ít hoặc không có sự khác biệt từ quan điểm bảo mật vì nó chỉ đơn giản là hoàn nguyên một hệ thống trở lại chính xác hoạt động trước SIP và chính xác là hầu như tất cả các hệ thống Unix vẫn hoạt động. Giá trị của SIP là tốt nhất có thể suy luận. Nó giải quyết câu hỏi bởi vì cách duy nhất để sử dụng lệnh Launchctl để giải nén tệp plist đã chơi là trước tiên phải vô hiệu hóa SIP, khởi động, hủy tải tệp plist, và sau đó, nếu muốn, SIP có thể kích hoạt được.


0

Một tùy chọn khác hoạt động trên 10.11.6 là một biến thể của phương thức được đề xuất bởi @ Le-Sci. Tạo tập lệnh shell vô hiệu hóa quy trình đã chơi:

#!/bin/bash
sleep 30 && kill -9 "$(pgrep gamed)"

Lệnh ngủ ở đây cho biết kịch bản đợi 30 giây trước khi bắt đầu quá trình thoát khỏi trò chơi, để cung cấp cho hệ thống đủ thời gian để tải trò chơi trước khi cố gắng chấm dứt nó; bạn có thể điều chỉnh lượng thời gian chờ đợi khi cần thiết. Lệnh "kill -9" buộc thoát khỏi quy trình bạn yêu cầu, nhưng nó chỉ chấp nhận số id của quy trình, không phải tên quy trình, vì vậy "pgrep" được sử dụng để tra cứu id quy trình. Ghi lại nơi bạn lưu tập lệnh (ví dụ này, tôi sẽ lưu tập lệnh đó dưới dạng "forceQuitGamed" trong / Users / myaccountname /).

Cho phép thực thi tập lệnh:

sudo chmod +x ~/forceQuitGamed

Tạo một tệp plist tác nhân khởi chạy sẽ chạy mỗi khi bạn đăng nhập vào tài khoản của mình. Nếu bạn chưa tạo tệp plist trước đây, một cách bạn có thể làm điều này là với TextEdit. Tệp tập lệnh phải được lưu trong văn bản thuần túy, vì vậy nếu các tùy chọn mặc định của bạn cho cuộc gọi TextEdit cho định dạng Rich Text, hãy thực hiện lệnh Format> Make Plain Text để chuyển đổi thành văn bản thuần túy trước khi thử sử dụng tệp plist tác nhân khởi chạy mới.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.myaccountname.loginscript</string>
    <key>ProgramArguments</key>
    <array>
        <string>/Users/myaccountname/forceQuitGamed</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

Chuỗi trong mảng trong "ProgramArgument" là tập lệnh path / to / your / shell. Lưu tệp vào ~ / Library / LaunchAgents /. Trong ví dụ này, tôi đặt tên tệp plist là com.myaccountname.forceQuitGamed.plist, vì vậy nó được tìm thấy tại

/Users/myaccountname/Library/LaunchAgents/com.myaccountname.forceQuitGamed.plist

Bây giờ, mỗi lần bạn đăng nhập vào tài khoản của mình, trò chơi sẽ bị hủy chỉ sau vài giây sau khi tải xong. (Nếu bạn cần chấm dứt càng sớm càng tốt sau khi được tải, hãy xem phương pháp @ Le-Sci's.) Cách tiếp cận này hoạt động mà không cần phải tắt Bảo vệ toàn vẹn hệ thống.


-4

Trước tiên, bạn phải nhập csrutil disablevào Terminal khi ở Chế độ khôi phục, sau đó khởi động lại thay đổi, khởi động lại trong Chế độ khôi phục và thực hiện csrutil enable, khởi động lại.

Nhưng tôi không biết quy trình nào khi được sửa đổi sẽ thỏa hiệp khởi động trong El Capitan


Điều này cho phép đăng nhập root. Nó có liên quan gì đến gamed?
Chưa đặt tên_1

Đây là một ý tưởng thực sự tồi tệ từ quan điểm bảo mật và nó không giải quyết được câu hỏi.
tàn phá
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.