První problém
Pokoušíte se provést příkaz mysqld_safe
, takže příkaz by měl být na PATH kde terminál hledá příkazy. (Tato místa můžete zobrazit spuštěním echo $PATH
. Různá umístění jsou oddělena dvojtečkou).
Protože se pokoušíte spustit soubor, který je v místním adresáři, měli byste zadat ./mysqld_safe
říct shellu, že dáváte cestu k souboru, jinak to bude hledat v PATH . (Soubor můžete spustit odkudkoli zadáním úplné cesty).
Dalším řešením je vytvořit symbolický odkaz v /usr/local/bin/
který ukazuje na /usr/local/mysql/mysqld_safe` (což je cesta k příkazu, pokud jsem to správně pochopil). Tímto způsobem můžete spustit příkaz odkudkoli, protože je v cestě, kterou shell hledá.
Druhý problém
cat
příkaz obklopený backticks je spuštěn shellem před spuštění příkazu sudo (Pokud byl soubor čitelný pro každého, shell provede něco jako:sudo kill 12345
).
Chcete-li spustit cat
jako root byste měli spustit tento příkaz:
sudo bash -c 'kill `cat /usr/local/mysql/data/rodongi.pid`'
Tímto způsobem spustíte bash jako root, který zase spustí kill
a přečte tak rodongi.pid
soubor jako root.