普段思ったことや、雑記。

Menu & Search

クロスプラットフォームでプロセスを殺せるツールのfkill-cliが便利すぎる

2018年4月17日

MacでOffice2011が未だ現役で動いており、時と場合によりExcelが度々フリーズする

めちゃくちゃどうでも良いが、見出しの通り、自分の作業環境ではそのようなことがよく発生するのである。で、いちいちFinderから強制終了を選択し、リストからExcelを選択し…なんてやっているのが面倒であった。

 

プロセスを殺したい時に、psコマンドの出力結果をパイプラインでgrepするのは直感的ではない

不要なプロセスを殺すのをコマンドでやるにせよ、psコマンドをパイプラインで処理し、grepでプロセスを探していくのもありだが、いかんせん文字を打ちこむ回数が多い上、直感的操作とは言い難い。psコマンドやgrepを使用したワンライナーは大体こういう感じになるだろうか。

$ ps aux | grep chrome

このやり方には問題がある。プロセスに関連するキーワードが、本当にプロセスを殺したいアプリケーションに付随するような他のプロセスが大量にある場合には、対象プロセスを探しにくかったりする。あとは、あくまで検索候補を絞るだけであって、実行結果を目視してから、対象のプロセス番号に対してkillコマンドを入力する必要がある。

 

そこで、fkill-cli。fkillコマンドを入力し、キーワードを打ち込んでいくと自動的にプロセスの候補がリストアップされる

やりたいこと自体の機能要件的にはpsの結果をパイプラインでgrepで処理するような要件で問題はないのだが、仮に1回で対象プロセスを見つけられなかったら、キーワードやコマンドのオプションを変更しつつワンライナーを実行するため、コレジャナイ感じがする。そこで、fkill-cliの出番である。fkill-cli公式より引用した下記のGifのように、fkillコマンドを入力することで、文字列の入力待ち受けが始まり、プロセスのキーワードにヒットする検索結果が候補として列挙される。

fkill-cli公式のデモ

fkill-cli公式のデモ

 

あとは一覧から上下キーでカーソルを移動し、Enterキーを押すことでプロセスを殺し、コマンドが終了する。前述のps aux | grepで検索する場合の問題も解消しており、仮にfkill-cliでchromeと入力したところで、アプリケーションに付随するプロセスが数多く表示されてしまうことはない。

fkill-cliのインストールの仕方は簡単で、Node.js環境がある前提だが、下記コマンドにてインストール可能である(公式推奨コマンド)。普段からNode.jsを使っている人は特に環境構築が要らないし、良いかもしれない。

$ npm install --global fkill-cli


案外、直感的にコマンドラインからプロセスを探し、殺すのは難しいと再認識

自分の場合は単純にFinderでアプリケーションを強制終了させる時短を目指してfkill-cliを導入しただけだが、あらためてps aux | grepでプロセスを直感的に検索して殺すということをするのは、それはそれでコストがかかるものだと再認識した。pgrepというコマンドもあり、これはこれでやりたいことに近いが、fkill-cliほど直感的に操作はできず、fkill-cliのように検索候補からパッとアプリケーションを選択して、殺すという感覚ではない(pgrepは、文字列に該当するプロセスをすべて返すだけ)。

fkill-cliはクロスプラットフォームである(最後でオマケのようだが、とても重要)、MacやLinuxだけでなくWindowsでも同じ感覚でプロセスを殺せるというのは便利そうだ。

mmiyauchi

プログラムを書きながらTranceを聴くのが良いですね。みなさんも聴いたほうがいいですよ、Trance。EDMよりハードトランスでしょ。

Related article

AWSのLightsailのWordPress(BitNami)へ移行する際の要点まとめ

BitNami(AW…

ドメイン更新料金が安くて、仮想通貨がもらえるレジストラ「Uniregistry」が良い

ドメイン更新料金が安くて、仮想通貨がもらえるレジストラ「Uniregistry」が良い

Whois情報のプラ…

HTTP/HTTPSリクエスト向け負荷テストツールのVegetaがとても良かった

HTTP/HTTPSリクエスト向け負荷テストツールのVegetaがとても良かった

仕事で負荷テスト担当…

Discussion about this post

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

Type your search keyword, and press enter to search