टर्मिनल से क्लीन रीस्टार्ट?


0

पिछले कई हफ्तों में, मेरा OS X 10.8.4 लैपटॉप पूरी तरह से उन राज्यों में अटक गया है जहां सीधे बातचीत करना असंभव है। कई बार वीएमवेयर फ्यूजन के यूएसबी शिम ने कीबोर्ड इनपुट को तोड़ दिया है। एक बार, सिस्टम को लॉक करने और अनलॉक प्रॉम्प्ट खींचने के बीच सिस्टम में एक स्पष्ट दौड़ की स्थिति थी, जिससे जीयूआई पूरी तरह से समाप्त हो गया। ये भयानक समस्याएं हैं, लेकिन उन्हें ठीक करने के लिए मैं कुछ नहीं कर सकता।

यह सब मैं समझ सकता हूं कि ऐसा होने पर मैं कैसे एक स्वच्छ पुनरारंभ प्राप्त कर सकता हूं। मैं कंप्यूटर पर ssh कर सकता हूं और बिना किसी समस्या के किसी भी कमांड को चला सकता हूं। मैं वास्तव में उन राज्यों में से पुनर्प्राप्त करने के लिए सिस्टम स्थिति पर भरोसा नहीं करता, इसलिए मैं सिर्फ एक साफ रिबूट चाहता हूं।

परंतु shutdown -h now है नहीं एक साफ रिबूट। यह GUI ऐप्स को साफ़-साफ़ बंद करने के लिए वही काम नहीं करता है जो ऐप्पल मेनू से "रिस्टार्ट ..." या "शटडाउन ..." का चयन करता है। इसके परिणामस्वरूप डेटा हानि होती है क्योंकि GUI ऐप्स साफ़-साफ़ बंद नहीं हुए थे। मैं सकता है जो कुछ भी मेरे पास चल रहा है उसे खोजने की कोशिश करना SIGTERM। यह काम करने लगता है, लेकिन यह एक बेहद मैनुअल प्रक्रिया है। जब आप उन मेनू आइटम को चुनते हैं, तो मुझे OS X को बताने के लिए अच्छा लगेगा।

तो - क्या कोई उपयोगिता है जो यह सही करती है? क्या मैं इसे मैनुअल और एरर-प्रोन तरीके से कर रहा हूं?


भेजना SIGTERM सभी प्रक्रियाओं के लिए वास्तव में क्या है shutdown कर देता है :-)
nohillside

फिर भी, shutdown VMWare फ़्यूज़न को साफ़ नहीं करता इसे भेजा जा रहा है SIGTERM कर देता है। कुछ अलग है।
Carl

2
GUI ऐप्स को सुरक्षित रूप से समाप्त करने के लिए आपको "छोड़ें" ईवेंट भेजने के लिए AppleScript की आवश्यकता होगी। यह पहले हो सकता है, क्या आपने साइट पर पहले से ही खोज की थी?
nohillside

2
ओह, ऐसा लग रहा है कि मैं खोजक को सीधे पुनरारंभ करने के लिए कहने के लिए ऐप्पलस्क्रिप्ट का उपयोग कर सकता हूं। मुझे इसका परीक्षण करना होगा, लेकिन यह शायद सही है।
Carl

जवाबों:


4

हाँ ठीक है। मैं इसे Applescript के साथ हल कर सकता हूं। मुझे सही दिशा में देखने के लिए पेट्रिक्स का धन्यवाद।

tell application "Finder"
    restart
end tell

के रूप में सहेजा गया restart.scpt, साथ दौड़ो osascript restart.scpt। मैंने इसे स्क्रीन लॉक करने के साथ दूरस्थ रूप से चलाने का परीक्षण किया है, और यह पूरी तरह से सफाई से पुनः आरंभ हुआ। मुझे यह याद रखने की आवश्यकता है कि जब भी मैं खोजक इंटरैक्शन को स्वचालित करना चाहता हूं, तो Applescript मौजूद है।


4
आप भी उपयोग कर सकते हैं osascript -e 'tell app "System Events" to restart'। कुछ सामान्य स्क्रिप्टिंग शब्दावली को OS X के प्रारंभिक संस्करणों में सिस्टम ईवेंट पर ले जाया गया था, और restart कमांडर अब खोजक के शब्दकोश में "विरासत सुइट" का हिस्सा है। यदि आप AppleScript Editor में ईवेंट टैब को देखते हैं, तो दोनों restart आज्ञाएँ बस भेजें «event aevtrest» यद्यपि लॉगिन करने के लिए।
Lri

killall Finder खोजक को फिर से शुरू करने और अन्य ऐप्स और पृष्ठभूमि कार्यक्रमों को अकेला छोड़ने का कारण वही काम करता है।
bmike

@bmike यह एक ही बात नहीं है। यह कुछ ऐसा है जिसे मैंने परीक्षण किया है - जैसा कि आपने कहा, यह चल रहे अन्य ऐप को छोड़ देता है। मुझे नहीं लगता कि जिन स्थितियों में मुझे इसकी आवश्यकता है, उनमें से किसी भी स्थिति में कुछ भी ठीक करता है। मैं चाहता हूं कि जो भी राज्य भ्रष्ट हो गया है, उसे ठीक करने के लिए एक पूर्ण प्रणाली को फिर से शुरू करें।
Carl

हम्म - मैं फिर थोड़ा उलझन में हूँ - क्या आपका प्रस्तावित खोजक समाधान था जहां अप्प्लीस्क्रिप्ट खोजक को काम फिर से शुरू करने के लिए कहता है लेकिन खोजक को मारना नहीं है? चूँकि आपने अपने प्रश्न का उत्तर दिया, ऐसा लग रहा है कि आप इस समस्या को हल करने के रूप में उत्तर को स्वीकार करने के लिए तैयार हैं?
bmike

@bmike अंतर खोजने के लिए कह रहा है पुनरारंभ करने के लिए पूरे OS को पुनरारंभ करता है खोजक को मारना सिर्फ खोजक प्रक्रिया को प्रतिक्रियाशील बनाता है।
Carl
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.