Pierwszy problem
Próbujesz wykonać polecenie mysqld_safe
, więc to polecenie powinno znajdować się w ŚCIEŻCE gdzie terminal szuka poleceń. (Możesz wyświetlić te lokalizacje, uruchamiając echo $PATH
. Poszczególne lokalizacje są oddzielone dwukropkiem).
Ponieważ próbujesz uruchomić plik znajdujący się w katalogu lokalnym, powinieneś wpisać ./mysqld_safe
aby poinformować powłokę, że podajesz ścieżkę do pliku, w przeciwnym razie wyszuka ją w PATH . (Możesz uruchomić plik z dowolnego miejsca, podając pełną ścieżkę).
Innym rozwiązaniem jest utworzenie dowiązania symbolicznego w /usr/local/bin/
który wskazuje na /usr/local/mysql/mysqld_safe` (jest to ścieżka do polecenia, jeśli dobrze zrozumiałem). W ten sposób możesz uruchomić polecenie z dowolnego miejsca, ponieważ znajduje się na ścieżce, której szuka powłoka.
Drugi problem
cat
polecenie otoczone znakami jest wykonywane przez powłokę przed uruchomienie polecenia sudo (jeśli plik był czytelny dla wszystkich, powłoka wykona coś takiego:sudo kill 12345
).
Aby uruchomić cat
jako root powinieneś uruchomić to polecenie:
sudo bash -c 'kill `cat /usr/local/mysql/data/rodongi.pid`'
W ten sposób uruchamiasz bash jako root, który z kolei uruchamia kill
i w ten sposób odczytuje rodongi.pid
plik jako root.