execによって実行されたプロセスは実行を継続します

アモグ

私がプロセスを実行しているNodeJを使用することで、すべてが正常に機能しています。唯一の問題は、親アプリが強制終了または閉じられた場合でも、プロセスexeが実行され続けることです。

たとえば、プロセスを強制終了するコード

require('child_process').exec(require('./globalconfig').CMD_BASE_PATH + 'taskkill.exe /im finder.exe /F', function (error, stdout, stderr) {
  if (error) {
    require('./loggerHelper').logger.error(error)
  }
})

これにより、「finder.exe」は強制終了されますが、タスクマネージャーを監視すると、「taskkill.exe」は実行を継続します。finder.exeを強制終了した後、taskkill.exeが終了するはずですが、なぜこれが発生しているのか、どうすれば解決できるのでしょうか。

マット

使用してexecスポーンに必要なコマンドを起動するためのシェルを、いずれかprocess.env.ComSpecまたはcmd.exeWindows上で。これにより、node起動されるプロセスとの間に追加のレイヤーが追加されます。プロセスが実行され続ける理由については完全な答えではありませんが、を使用execすると、問題が発生する可能性が高くなります。

を使用spawnすると、親nodeプロセスがシグナルを直接制御して子プロセスに渡すことができます。

const { spawn } = require('child_process')
const { CMD_BASE_PATH } = require('./globalconfig')
const find = spawn(`${CMD_BASE_PATH}taskkill.exe`, ['/im', 'finder.exe', '/F'])

find.stdout.on('data', data => {
  console.log('stdout: %s', data)
})

find.stderr.on('data', data => {
  console.log('stderr: %s', data)
})

find.on('close', code => {
  if ( code !== 0 ) console.error(`Finder exited with error: ${code}`)
})

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

捕捉されなかったSIGINT(ターミナルからCtrl-C)を受信した後も、プロセスは実行を継続します

分類Dev

プロセスが実行されているかどうかを継続的に確認します

分類Dev

GetFileプロセッサはApacheNiFiで継続的に実行されています

分類Dev

独立して実行され、メインプロセスが閉じられても実行を継続するサブプロセスをPythonで開始するにはどうすればよいですか?

分類Dev

スクリプトを実行するフォークされたexecプロセスにSIGINTを送信しても、それは強制終了されません

分類Dev

プロセスが継続的に実行されているかどうかを確認し、実行されていない場合は複数のプログラムを開始して、それ自体を終了します

分類Dev

デスクトップショートカットランチャーを介して実行されたスクリプトによって作成されたプロセスを、実行が終了した後も存続させるにはどうすればよいですか?

分類Dev

別のプログラムによって実行されたプロセスを強制終了しますが、そのプログラムの他のインスタンスは実行しません

分類Dev

PowerShellで指定されたユーザーによって実行されたプロセスを強制終了します

分類Dev

logrotateによって実行されたスクリプトは、手動で実行した場合とは異なる結果をもたらします

分類Dev

bashによって実行されたすべてのプロセスを追跡する方法はありますか

分類Dev

プロセスがSIGSTOPで停止された後も、選択タイマーは実行を継続しますか?

分類Dev

Selectorクラスが削除されてもajaxは実行を継続します

分類Dev

mod_wsgiによって起動されたプロセスを手動で停止し、実行中のプロセス数を監視する

分類Dev

pool.apply_async()によって生成されたサブプロセスが常にMainProcessとして実行されるのはなぜですか?

分類Dev

親プロセスでsleep()を使用しても、子プロセスは最後に実行されます

分類Dev

例外がスローされた後、Javaプログラムの実行を継続するにはどうすればよいですか?

分類Dev

指定されたタスク実行可能ファイルcmd.exeを実行できませんでした。別のプロセスによって使用されているため、プロセスはファイルにアクセスできません

分類Dev

関数は戻った後も実行を継続します

分類Dev

inotifywaitを継続的に実行し、cronまたはデーモンとして実行するにはどうすればよいですか?

分類Dev

TaskSchedulerによって開始されたプロセスから、JavaProcessBuilderを使用して可視アプリケーションを実行する

分類Dev

crontabによって実行されたスクリプトはデータを生成しません

分類Dev

タスクの継続(async / awaitによって構築された)は、WPFアプリケーションのメインスレッドで実行されていますが、コンソールアプリケーションの子で実行されています

分類Dev

S3によってトリガーされたAWSでETLpythonスクリプトを実行します

分類Dev

Pythonによって実行されたスクリプト結果のキーから値を取得します

分類Dev

kill()は、/ etc / rc.localによって開始されたプロセスから実行された場合、サブプロセスを停止しませんか?

分類Dev

popenを使用して実行した場合、またはサブプロセスライブラリで実行した場合、Pythonで入力プロンプトを独自の行に出力するにはどうすればよいですか?

分類Dev

CreateDesktop()関数によって作成された新しいデスクトップ内で実行されている他のプロセス(自分以外)が存在するかどうかをどのように確認しますか?

分類Dev

SailsJSは、プロセスがすでに実行されているかどうかをテストします

Related 関連記事

  1. 1

    捕捉されなかったSIGINT(ターミナルからCtrl-C)を受信した後も、プロセスは実行を継続します

  2. 2

    プロセスが実行されているかどうかを継続的に確認します

  3. 3

    GetFileプロセッサはApacheNiFiで継続的に実行されています

  4. 4

    独立して実行され、メインプロセスが閉じられても実行を継続するサブプロセスをPythonで開始するにはどうすればよいですか?

  5. 5

    スクリプトを実行するフォークされたexecプロセスにSIGINTを送信しても、それは強制終了されません

  6. 6

    プロセスが継続的に実行されているかどうかを確認し、実行されていない場合は複数のプログラムを開始して、それ自体を終了します

  7. 7

    デスクトップショートカットランチャーを介して実行されたスクリプトによって作成されたプロセスを、実行が終了した後も存続させるにはどうすればよいですか?

  8. 8

    別のプログラムによって実行されたプロセスを強制終了しますが、そのプログラムの他のインスタンスは実行しません

  9. 9

    PowerShellで指定されたユーザーによって実行されたプロセスを強制終了します

  10. 10

    logrotateによって実行されたスクリプトは、手動で実行した場合とは異なる結果をもたらします

  11. 11

    bashによって実行されたすべてのプロセスを追跡する方法はありますか

  12. 12

    プロセスがSIGSTOPで停止された後も、選択タイマーは実行を継続しますか?

  13. 13

    Selectorクラスが削除されてもajaxは実行を継続します

  14. 14

    mod_wsgiによって起動されたプロセスを手動で停止し、実行中のプロセス数を監視する

  15. 15

    pool.apply_async()によって生成されたサブプロセスが常にMainProcessとして実行されるのはなぜですか?

  16. 16

    親プロセスでsleep()を使用しても、子プロセスは最後に実行されます

  17. 17

    例外がスローされた後、Javaプログラムの実行を継続するにはどうすればよいですか?

  18. 18

    指定されたタスク実行可能ファイルcmd.exeを実行できませんでした。別のプロセスによって使用されているため、プロセスはファイルにアクセスできません

  19. 19

    関数は戻った後も実行を継続します

  20. 20

    inotifywaitを継続的に実行し、cronまたはデーモンとして実行するにはどうすればよいですか?

  21. 21

    TaskSchedulerによって開始されたプロセスから、JavaProcessBuilderを使用して可視アプリケーションを実行する

  22. 22

    crontabによって実行されたスクリプトはデータを生成しません

  23. 23

    タスクの継続(async / awaitによって構築された)は、WPFアプリケーションのメインスレッドで実行されていますが、コンソールアプリケーションの子で実行されています

  24. 24

    S3によってトリガーされたAWSでETLpythonスクリプトを実行します

  25. 25

    Pythonによって実行されたスクリプト結果のキーから値を取得します

  26. 26

    kill()は、/ etc / rc.localによって開始されたプロセスから実行された場合、サブプロセスを停止しませんか?

  27. 27

    popenを使用して実行した場合、またはサブプロセスライブラリで実行した場合、Pythonで入力プロンプトを独自の行に出力するにはどうすればよいですか?

  28. 28

    CreateDesktop()関数によって作成された新しいデスクトップ内で実行されている他のプロセス(自分以外)が存在するかどうかをどのように確認しますか?

  29. 29

    SailsJSは、プロセスがすでに実行されているかどうかをテストします

ホットタグ

アーカイブ