「これが答えの後で悪い考えである理由」を保存しますが、ここであなたが使用するかもしれないいくつかのトリックがあります。誰もがCCでテストできるわけではないので、この例ではSafariを選択しましょう。
ps -ef | grep "Safari "
まず、プログラム名の後にスペースを追加して、パスの一部ではないことを確認します。次に、プロセス名の1文字を角括弧で囲み、grepが自分自身を見つけられないようにします。 (これを行うにはもっとエレガントな方法があるかもしれませんが、このハックは私にはうまくいきます)
ps -ef | grep "[S]afari "
これはgrepコマンドをSafariと一致させません - 大括弧を使うと検索できます [SZ]afari
そしてどちらかにマッチ Safari
または Zafari
例えば。ちょっとめちゃくちゃにしたい grep
位置1の代替文字は見つかりません。
ps -ef | grep "[S]afari " | awk '{print $2}'
PIDを取得するために、2番目の空白で区切られた単語を削除します。これが、1つのセッションで、使用しているコマンドをデバッグする方法です。
mac:~ me$ ps -ef | grep Safari
501 300 1 0 Wed06PM ?? 45:03.88 /Applications/Safari.app/Contents/MacOS/Safari -psn_0_40970
501 520 1 0 Wed06PM ?? 1:08.95 /usr/libexec/SafariCloudHistoryPushAgent
501 590 1 0 Wed06PM ?? 1:39.35 /System/Library/PrivateFrameworks/SafariSafeBrowsing.framework/com.apple.Safari.SafeBrowsing.Service
501 608 1 0 Wed06PM ?? 0:10.31 /System/Library/PrivateFrameworks/SafariShared.framework/Versions/A/XPCServices/com.apple.Safari.SearchHelper.xpc/Contents/MacOS/com.apple.Safari.SearchHelper
501 2476 1 0 Wed06PM ?? 0:01.56 /System/Library/PrivateFrameworks/SafariShared.framework/Versions/A/XPCServices/com.apple.Safari.ImageDecoder.xpc/Contents/MacOS/com.apple.Safari.ImageDecoder
501 38802 1 0 Thu01PM ?? 0:02.41 /usr/libexec/SafariNotificationAgent
501 92847 90892 0 7:27AM ttys013 0:00.00 grep Safari
mac:~ me$ ps -ef | grep "Safari "
501 300 1 0 Wed06PM ?? 45:04.31 /Applications/Safari.app/Contents/MacOS/Safari -psn_0_40970
501 92875 90892 0 7:27AM ttys013 0:00.01 grep Safari
mac:~ me$ ps -ef | grep "[S]afari "
501 300 1 0 Wed06PM ?? 45:04.57 /Applications/Safari.app/Contents/MacOS/Safari -psn_0_40970
mac:~ me$ ps -ef | grep "[S]afari " | awk '{ print $2 }'
300
mac:~ me$ echo kill `ps -ef | grep "[S]afari " | awk '{ print $2 }'`
kill 300
私が使った通知 echo
単にコマンドの構文を渡すために - 私がそれをエコーしなかったなら、killコマンドは実際に実行され、私がこの答えを書くために使用しているSafariプログラムを殺したでしょう。
¯\_(ツ)_/¯
だから、今、あなたは1行のスクリプトを書いて1つのプロセスを殺すことに慣れているはずです(うまくいけば)、そして私たちは答えの悪い考えの部分に来ます。それを使用する方が良いでしょう killall server.js
あなたが殺したくないという他のサーバを走らせることをこれまでに予想していないなら。
- 誰かが同じ名前の別のプログラムやスクリプトを作成した場合はどうなりますか?
awk
コマンドがターゲットに決定する?
- また、スクリプトをスケジュールする方法にも慣れていません。あなたは5分毎に、1時間に1回実行しますか、そしてさらに悪いことに、それが今それがCPU上でしていると思われるどんな仕事にもどれほどのダメージを与えますか。