ホームページ >バックエンド開発 >PHPチュートリアル >PHP コード exec('kill $pid',$op,$returns) は、Linux 仮想マシン下のプロセスを強制終了できません

PHP コード exec('kill $pid',$op,$returns) は、Linux 仮想マシン下のプロセスを強制終了できません

WBOY
WBOYオリジナル
2016-06-23 13:34:34918ブラウズ

タイトルにあるように、Linux 上で PID を介してプロセスを強制終了するための php コード exec("kill $pid",$op,$returns) を書きました。実行後の戻り値は常に「1」です。これは、実行は失敗しました。完了後もプロセス ID は残ります。 kill 呼び出しを実行するファイルに最大のアクセス許可を与えました。インターネット上では、php.ini の設定に問題があると言っている人もいますが、1 日探しても参考になるアドバイスが見つかりませんでした。専門家の皆様にアドバイスをお願いします。 ! ! ! !


ディスカッションへの返信(解決策)

phpのセーフモードとか関係あるのでしょうか?

root として Linux にログインします

設定ファイルで、exec 機能がオンになっていますか?

おそらく権限がありません

設定ファイルで exec 機能がオンになっていますか?


いいえ、これは私が書いた PHP コードで、exec 関数を実行して指定したプロセスを強制終了しますが、効果はありません。たとえば、exec('pidof /sbin/reboot',$op,$returns);echo $returns; は、実行が成功したことを意味する 0 を取得しますが、他の処理を行う場合には問題ありません。いいえ、許可の問題ですか?それともどこか設定に問題があるのでしょうか?

おそらく権限がありません


どのような権限がありますか?どのファイルを変更しますか?どんな物?

権限がありません。
Apache の権限を root に設定して見てください。

望んでいた答えは得られませんでしたが、7 階で大いに刺激を受け、Apache の実行権限の変更に関するブログをいくつか見つけ、最終的に問題を解決することができました。次のブログが役に立ちます: http://blog.csdn.net/lxwxiao/article/details/8513355

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。