最初の問題
コマンドmysqld_safe
を実行しようとしています 、コマンドが PATHにあるようにします 端末がコマンドを探す場所。 (これらの場所を表示するには、echo $PATH
を実行します。 。異なる場所はコロンで区切られます。
ローカルディレクトリにあるファイルを実行しようとしているので、./mysqld_safe
と入力する必要があります ファイルへのパスを指定していることをシェルに通知します。それ以外の場合は、 PATHでファイルを検索します。 。 (フルパスを指定することで、どこからでもファイルを実行できます。)
別の解決策は、/usr/local/bin/
にシンボリックリンクを作成することです。 これは/usr/ local / mysql / mysqld_safe`を指します(これは、私が正しく理解していれば、コマンドへのパスです)。そうすれば、シェルが探しているパスにあるため、どこからでもコマンドを実行できます。
2番目の問題
cat
バッククォートで囲まれたコマンドは、 beforeシェルによって実行されます。 sudoコマンドの実行(ファイルがすべての人に読み取り可能である場合、シェルは次のようなものを実行します:sudo kill 12345
。
cat
を実行するには ルートとして、次のコマンドを実行する必要があります:
sudo bash -c 'kill `cat /usr/local/mysql/data/rodongi.pid`'
このように、rootとしてbashを実行すると、kill
が実行されます。 コマンドを実行し、rodongi.pid
を読み取ります ルートとしてファイルします。