私はOpenVZ VPSを使用しており、root以外のユーザーとしてバックグラウンドプロセスを作成してから拒否しました。
user@server:~$node server.js &
user@server:~$disown
VPSからSSHを出て、もう一度入ってきましたが、PIDを使用してプロセスを終了することはできないようです。Pkill 1292
。ルートとしても失敗します。実行するとtop
実行し続けるので死んでいないことを知っています。また、実行してみると、ps -l -p 1292
プロセスが実行され続けることがわかります。
プロセスが端末セッションに接続されていないことがわかります。メモこのコマンドは TTY に疑問符を表示します。
このプロセスをどのように終了できますか?
ベストアンサー1
pkill
(同じインターフェースを使用するのと同じように、もともとはpgrep
Solarisコマンドでしたが、現在Linux(procps
パッケージ)を含む他の多くのUnixシリーズシステムにあります。)名前に従ってプロセスを終了することです。
pkill regexp
SIGTERM
すべてのプロセスに対して終了(信号を送信)名前1 は与えられた正規表現と一致します。
これにより、pkill node
名前に含まれるすべてのプロセスが終了しますnode
。pkill -x node
(正確に一致する場合は / の-x
ように)を使用して、名前を次のように終了します。grep
pgrep
正確に node
。
pid²に基づいて終了するのはそれだけですkill
(ほとんどのシェルに組み込まれているコマンドなので、シェル操作でも使用できますが、スタンドアロンユーティリティとしても使用できます)。
kill 6806
(の略語kill -s TERM 6806
)が失敗した場合は、次のことができます。最後の手段で試してみるkill -s KILL 6806
と異常終了します。。
^プロセス名この概念はオペレーティングシステムによって少し異なります。 Linuxでは、通常、プロセス(または最も近い祖先)によって実行されるファイルの基本名の最初の15バイトです。ただし、プロセスはこれを任意の(15バイト以下)値に変更できます。pkill -f
パラメータリストの一致も参照してください。
²kill
プロセスによっては殺すことができます。グループID。kill -- -123
プロセスグループIDが123のすべてのプロセスにSIGTERM信号を送信します。組み込み POSIX シェルの作業仕様を使用する場合 (kill
例kill %spec
:kill
グループ。