Erstes Problem
Sie versuchen, den Befehl mysqld_safe
auszuführen , also sollte sich dieser Befehl auf dem PATH befinden wo das Terminal nach Befehlen sucht. (Sie können diese Speicherorte anzeigen, indem Sie echo $PATH
ausführen . Die verschiedenen Standorte werden mit einem Doppelpunkt getrennt).
Da Sie versuchen, eine Datei auszuführen, die sich im lokalen Verzeichnis befindet, sollten Sie ./mysqld_safe
eingeben um der Shell mitzuteilen, dass Sie einen Pfad zur Datei angeben, andernfalls sucht sie im PATH danach . (Sie können die Datei von überall ausführen, indem Sie den vollständigen Pfad angeben).
Eine andere Lösung besteht darin, einen symbolischen Link in /usr/local/bin/
zu erstellen das zeigt auf /usr/local/mysql/mysqld_safe` (das ist der Pfad zum Befehl, wenn ich Sie richtig verstanden habe). Auf diese Weise können Sie den Befehl von überall ausführen, da er sich in dem Pfad befindet, nach dem die Shell sucht.
Zweites Problem
Die cat
Der von Backticks umgebene Befehl wird vorher von der Shell ausgeführt Ausführen des sudo-Befehls (Wenn die Datei für alle lesbar war, führt die Shell so etwas aus wie:sudo kill 12345
).
Um die cat
auszuführen Als root sollten Sie diesen Befehl ausführen:
sudo bash -c 'kill `cat /usr/local/mysql/data/rodongi.pid`'
Auf diese Weise führen Sie bash als root aus, was wiederum kill
ausführt Befehl und liest somit die rodongi.pid
Datei als root.