OS X पर सेवाएँ निकालें


15

मैं कुछ सेवाओं को पूरी तरह से हटाने के लिए देख रहा हूं, या कम से कम कीबोर्ड वरीयता सूची में। मैंने कोशिश की:

  1. सेवा रंडी । यह केवल मेनू से सेवाओं को निकालता है - 10.6 के बाद से आप सिस्टम वरीयता से कुछ कर सकते हैं।
  2. में फ़ाइलों को निकालने ~/Library/Services/और /Library/Services/। यह सिर्फ इतना है कि अधिकांश तीसरे पक्ष के ऐप वहां अपनी सेवाएं नहीं देते हैं।
  3. defaults delete /Applications/SomeApp.app/Contents/Info NSServices। यह सिस्टम वरीयताएँ में सूची से सेवाएँ हटाता है। लेकिन यह बंडल के कोड हस्ताक्षर को भी अमान्य करता है, और परिवर्तन अपडेट द्वारा वापस मिल सकते हैं।

मुझे लगता है कि आपको केवल अंतिम विकल्प के लिए समझौता करना होगा, और codesignजब आवश्यक हो तब नए हस्ताक्षर असाइन करना होगा । लेकिन क्या कोई आसान तरीका है?


आह, ओएस एक्स की सुंदरता जटिल चीजें हैं जो सरल होनी चाहिए।
क्रैगॉक्स

OS X का कौन सा संस्करण आप चला रहे हैं? ओएस एक्स के इंटर्नल प्रमुख संस्करणों के बीच काफी तेजी से बदलते हैं।
माज़ेंको

5
@ कव्वा: सेवाओं को हटाना सरल है: आप सिस्टम वरीयता में सूची पर जाएं और उन्हें अनचेक करें। किसी भी कारण से, लारी क्या करना चाहता है, उन्हें दूर करना और उन्हें बहाल करना असंभव बना देता है। सामान को तोड़ना आसान क्यों होना चाहिए?
लाक

@ LaC यह शायद इस मामले में स्वाद की बात है। मेरे मामले में मैं अच्छा पुराना एक्सपोज चाहता था। लेकिन मुझे अपने प्रश्न को उलटने दें: सेवा को उस सूची में जोड़ना सरल है - इसे पूरी तरह से हटाने और व्यवस्थापक की इच्छा होने पर इसे साफ रखने के लिए सरल क्यों नहीं होना चाहिए ?
क्रैगॉक्स

AFAICT, यह बस के रूप में सरल है। आप इसे लाइब्रेरी / सेवाओं में डालकर या इसे प्रदान करने वाले एप्लिकेशन को स्थापित करके एक सेवा जोड़ते हैं। आप किसी सेवा को लाइब्रेरी / सेवाओं से हटाकर या उसे प्रदान करने वाले एप्लिकेशन को हटा देते हैं।
लाक

जवाबों:


3
#!/bin/sh

applist="Path Finder
Skim
TextWrangler"
IFS=$'\n'

for appname in $applist; do
    apppath=$(mdfind -onlyin /Applications/ -onlyin ~/Applications/ \
    -onlyin /Developer/Applications/ -onlyin /System/Library/CoreServices/ \
    'kMDItemKind == Application' | grep -i "/$appname.app$" | head -1)
    echo $apppath
    date=$(date '+%y%m%d%-H%M%S')
    cp "$apppath/Contents/Info.plist" "$apppath/Contents/Info-$date.plist"
    defaults delete "$apppath/Contents/Info" NSServices
    codesign -f -s - "$apppath"
done

चरण 2 में कोई विशेष प्रमाणपत्र प्रकार ?
डैनियल बेक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.