2016-12-01 11 views
0

PHPを使用してリモートUbuntuサーバの特定のプロセスを強制終了するコマンドがありますか?PHPを使用してリモートUbuntuサーバーのプロセスを強制終了するには?

リモートUbuntuサーバで実行されているすべてのPHPプロセスをリストするコマンドもありますか?私が使っていた

のps補助| grep php

sshを使用してリモートマシンにログインした後、すべてのPHPプロセスをリストします。しかし、ローカルマシン自体からプロセスリストを取得することは可能ですか?

注:私は15分ごとにいくつかのcronジョブを実行しています。 DB内のプロセスIDをそれぞれ保持する。監視ツール(別のサーバー内)から特定のプロセスIDを削除する必要があるシナリオがあります。

コマンドがあれば、私はPHPスクリプトで呼び出して使用できます。 ありがとう!

答えて

0

この質問はaskubuntuにある可能性があります。

サーバーへのSSHアクセス権がある場合は、そのサーバーにログオンしています。

次に、すべてのPHPプロセスまたはsudo kill <idprocess>を終了するには、sudo killall phpを実行します。

Apacheサーバーを実行している場合は、新しいプロセスを作成できることに注意してください。 Apacheをオフにすると、新しいプロセスを作成しないようにすることができます。

EDIT:

this postによると、あなたは対話せずに直接パスワードを与えるためにパッケージを使用することができます。そのおかげで、あなたのスクリプトはサーバー上でサインインし、プロセスを終了し、最後にサインアウトすることができます。

+0

私は同意します。しかし、私はコードを介してリモートサーバーに1つのサーバー(ローカルホストと言う)を殺す必要がありますか?そして私がここで尋ねる理由は、コードを使って解決策が必要なだけなので、PHPを使って他の解決策が得られるかもしれないと考えているのです。 –

+0

sshを使ってログインせずに、スクリプトを使ってリモートで行う必要があるとは私は理解していませんでした。 bashスクリプトでこれを行うことはできますか?スクリプトはサーバーにサインインしてプロセスを終了させることができます。 – AnthonyB

+0

質問に詳細が追加されました。 –

0

posix_kill()関数を使用して、シグナルをプロセスに送信できます。特権によっては、期待した結果が表示される場合と表示されない場合があります。

SIGKILL定数が(あなたが期待しているように)SIGKILLを送信します。

実際にはexec()sudoの組み合わせを含む何も実行するべきではありません。これは、あなたの設定が多くの潜在的な厄介な人に脆弱であることを意味します。

+0

本当の質問は、プロセスを殺していない、これはリモートでそれをやっている。しかし確かにposix_killは役に立ちそうです。 – AnthonyB

+0

質問はPHPを使ってリモートで行うことです。私はPHPでローカルで行う方法に本当に答えるだけですが、PHPはリモートから呼び出すように設計されています。既にcurlでスクリプトを呼び出すだけで、既に認証済みであれば十分です。 – moopet

+0

PHPはWebサーバーを使用してリモートから呼び出すことができます。したがって、Apacheサーバー(またはその他)を使用してWebインターフェイスを作成することができます。これはちょっとしたウェブサイトのようなものです。もちろん、認証あり。 – AnthonyB

関連する問題