पहली समस्या
आप mysqld_safe
. कमांड को निष्पादित करने का प्रयास कर रहे हैं , ताकि कमांड PATH . पर हो जहां टर्मिनल कमांड की तलाश करता है। (आप इन स्थानों को echo $PATH
. चलाकर देख सकते हैं . विभिन्न स्थानों को एक कोलन से अलग किया जाता है)।
चूंकि आप स्थानीय निर्देशिका में फ़ाइल चलाने का प्रयास कर रहे हैं, इसलिए आपको ./mysqld_safe
टाइप करना चाहिए शेल को यह बताने के लिए कि आप फ़ाइल को पथ दे रहे हैं, अन्यथा वह इसे PATH में खोजेगा . (आप पूरा पथ निर्दिष्ट करके फ़ाइल को कहीं से भी चला सकते हैं)।
एक अन्य उपाय /usr/local/bin/
. में प्रतीकात्मक लिंक बनाना है जो /usr/local/mysql/mysqld_safe` को इंगित करता है (यदि मैं आपको सही ढंग से समझता हूं तो यह आदेश का पथ है)। इस तरह आप कमांड को कहीं से भी चला सकते हैं क्योंकि यह उस पथ में है जिसे शेल ढूंढ रहा है।
दूसरी समस्या
cat
बैकटिक्स से घिरा कमांड पहले . शेल द्वारा निष्पादित किया जाता है सुडो कमांड चलाना (यदि फ़ाइल सभी के लिए पठनीय थी, तो शेल कुछ इस तरह निष्पादित करेगा:sudo kill 12345
)।
cat
को चलाने के लिए रूट के रूप में आपको यह कमांड चलानी चाहिए:
sudo bash -c 'kill `cat /usr/local/mysql/data/rodongi.pid`'
इस तरह, आप बैश को रूट के रूप में चलाते हैं, जो बदले में kill
. चलाता है कमांड, और इस प्रकार rodongi.pid
. पढ़ता है रूट के रूप में फाइल करें।