2017-07-08 1 views
0

grunt-killを使用して、server-scormタスク、および最終的には関連するタスクを強制終了するタスクを作成しようとしています。私がPIDファイルについて知っていることを前提としているので、指示は極端に短く(私はdevsの障害ではない)、Grunt Manualは0を参照しています。グランプpidファイルとGrunt-kill

問題は、私がPIDファイルパスを正しく参照する方法と、Gruntがどのような命名方式を使用しているかわからないことです。私は、次のコマンドを実行したときに

私はIDを取得することができます。

ps aux | grep grunt 

しかし、PIDは毎回変更したときに私には良いもしませんもちろん

が、私はそれを直接参照することはできません。

命令は設定でこれを置くことを言う:

kill: { 
    myService: { 
    src: [ 'my-service.pid' ] 
    }, 
    secondary: { 
    pid: 'secondary.pid' 
    } 
} 

これは、それを使用する方法の一例である...しかし['my-service.pid']は、私はそれを取得する方法は考えています。私の場合は

、私は殺すためにしようとしているコマンドのイサキタスクの名前はserver-scorm私ははそれがあったを想定している。もちろん

kill: { 
    serverScorm: { 
    src: [ 'server-scorm.pid' ] 
    }, 
} 

私はそれを実行すると、それが認識しませんそれ。私はこれを取得:

kill:serverScorm task fail

がこのパズルに欠けているが、私がserver-scorm.pidまたは史上いわゆるに得ることができないということであるようです。

私がなぜcntrl+cを使用していないのか疑問に思っているのであれば、チームはブラケットと呼ばれるIDEを使用しています。ちょうどボタンをクリックしてコマンドを実行するだけで、 ...あなたが推測しているように、そのようなコマンドを入力できる場所はありません。

+0

あなたはgrunt-shellを次のように実行することができます:ps aux | grep grunt> server-scorm.pidを実行し、これに依存して駆逐します。 – Revive

答えて

1

GitHubのバグレポートから私の回答をコピーしています。

こんにちは@phillt grunt-killプラグインは、pidがなければ、どのプロセスが欲しいかをどのように知るので、どのプロセスのpidもネイティブに決めることはできません。各アプリケーションの「発見」方法は異なる可能性があり、複数のプロセスを実行することさえできます。

PIDを決定するには、このプラグインの2つの方法があります。

  • は、pidファイルを指定します。これには、pidをファイルに書き込むためにkillしようとしているプロセスが必要です。これはUnixのデーモンの一般的なパターンです。特に、バックグラウンドでサービスとして実行されているときにそうです。このアプローチは、起動時に、よく知られている場所にあるファイルに殺されるべきメインプロセスのPIDを書き出し、grunt-killのようなツールはそのファイルを読み込み、どのプロセスを終了させるかを知ることができます。たとえば、RedHatのApache Webサーバーは、通常、そのpidファイルを/var/run/httpd.pidのようなものに書き込みます。私はserver-scormに慣れていないので、pidファイルを使用しているかどうかはっきりと言うことはできません。
  • PID自体、またはPIDを返す関数を指定します。 PIDをプログラムで確実に見つける方法があれば、それをGruntfileの関数として書くことができ、grunt-killはPIDを発見するためにうまく実行します。おそらくpidを見つけるためにps auxの周りにいくつかのフィルターを置くことができます。たぶん、プロセス名とユーザーのログイン名でフィルタリングしますか?

私はeラーニング空間で働いているので、server-scormとadaptフレームワークは私にいくつかの宿題を与えます。 :)

関連する問題