टूलबार से शुरू की गई AppleScript स्क्रिप्ट को छोड़ने के लिए कैसे मजबूर करें?


3

मेरे पास AppleScript स्क्रिप्ट (MySQL लॉन्च करने के लिए) है जो मैं AppleScript टूलबार मेनू से चलाता हूं। यह काम करता है (MySQL लॉन्च करता है), हालांकि स्क्रिप्ट को छोड़ने के लिए प्रतीत नहीं होता है। और टूलबार में गियरव्हील घूमता रहता है।

गियरव्हील घूमता रहता है

गियरवेल पर क्लिक करते समय मैं उस स्क्रिप्ट के लिए 'x' क्लोज बटन पर क्लिक कर सकता हूं, लेकिन यह कुछ नहीं करता है। एक्टिविटी मॉनिटर में कोई जमी प्रक्रिया नहीं होती है।

मैं उस स्क्रिप्ट को "कैसे छोड़ सकता हूं"?

PS किसी ने पूछा कि स्क्रिप्ट क्या है, यहाँ यह है:

do shell script "sudo /usr/local/mysql/support-files/mysql.server start" with administrator privileges

स्क्रिप्ट क्या है?
टेटसुजिन

@Tetsujin मैंने इसे प्रश्न विवरण में जोड़ा है।
ओलेग

1
ठीक है, इसलिए आप इसे एक शेल स्क्रिप्ट के रूप में सेट करते हैं - इसलिए अगली पंक्ति में जाने से पहले यह उस एप्लिकेशन का इंतजार करेगा जब तक कि यह लॉन्च नहीं किया गया। मैं वास्तव में नहीं जानता कि इसे कैसे रोका जाए।
टेटसुजिन

1
मेरे पास कुछ स्क्रिप्ट हैं जो लॉन्च किए गए प्रक्रियाओं के 'मूल' के रूप में दिनों तक चलती रहती हैं; बाद में उन्होंने आगे बढ़ने के निर्देश दिए। मेरे पास उन्हें सेवा के रूप में सेट करने की आवश्यकता नहीं है, इसलिए वे उस गियर व्हील को चलाकर मुझे परेशान नहीं करते।
टेटसुजिन

1
ऐप को स्क्रिप्ट के रूप में सहेजें, डबल-क्लिक करके लॉन्च करें। मुंडन, लेकिन मेरे लिए काम करता है;) मैं यह देखने के लिए इंतजार करूंगा कि क्या कोई मुझसे ज्यादा स्मार्ट है, यह जानता है कि इसे कैसे खत्म करना है, हालांकि - बेहतर दीर्घकालिक होगा।
टेटसुजिन

जवाबों:


1

ठीक है, पहले, जब आप AppleScript के "व्यवस्थापक विशेषाधिकारों के साथ" का उपयोग कर रहे हैं, तो आपको उपयोग नहीं करना चाहिए sudo

दूसरा, यदि आप AppleScript को खत्म करना चाहते हैं, तो आपको नौकरी को पृष्ठभूमि में भेजना होगा।

ऐसा करने का सबसे आसान तरीका है, कमांड को शेल स्क्रिप्ट में रखना, जैसे:

#!/bin/zsh -f

/usr/local/mysql/support-files/mysql.server start &|

exit 0

( &|पंक्ति के अंत में ध्यान दें । यह 'पृष्ठभूमि' में जाने की प्रक्रिया को बताता है)

उन 3 लाइनों को किसी फ़ाइल में सेव करें जिसका नाम कुछ है /usr/local/bin/start-mysql-server.shऔर फिर ऐसा करें

chmod 755 /usr/local/bin/start-mysql-server.sh

इसे निष्पादन योग्य बनाने के लिए।

अंत में, अपने AppleScript को बदलें

do shell script "/usr/local/bin/start-mysql-server.sh" with administrator privileges

और इसे लॉन्च करना चाहिए और फिर गियर गायब हो जाना चाहिए।


1
यह पहले से चल रही स्क्रिप्ट को कैसे रोकता है?
रस्सियों

1
इसे रोकने के लिए आपको एक अलग स्क्रिप्ट की आवश्यकता होगी।
टीजे लुओमा

0

मुझे क्या करना होगा:

  1. टर्मिनल खोलें
  2. प्रकार ps aux|grep mysql
  3. स्क्रिप्ट का पीआईडी ​​प्राप्त करें
  4. टाइप करें kill -s 9 ####जहां #### स्क्रिप्ट का PID है

मैं यह सुनिश्चित करने के लिए जाँच करूँगा कि आप किसी अन्य mysql सर्वर जैसी गलत प्रक्रिया को न मारें।


आपके द्वारा चलाए जा रहे सटीक स्क्रिप्ट की जांच के लिए आप कुछ स्मार्ट का उपयोग कर सकते हैं, लेकिन उपरोक्त बहुत आसानी से स्क्रिप्ट योग्य है।
देसबेक

क्या है -s 9? के रूप में ही है -9?
ओलेग
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.