私は自分のPerlをWindows上のサービスとしてソフト実行しています。
この目的のために、Win32 :: Daemonモジュールを使用してSCM(サービス構成マネージャー)を操作し、サービスを開始/停止します。
サービスを起動するには、system() perlコマンドを使用します。
コマンドは次のようになります。
START \"title\" /Dc:\\path\\to\\bat\\script\\dir\\ \"script.bat\"
このコマンドをcmd.exeから直接起動すると、プロセスのタイトルが適切に設定されています。
開始したサービスを介してコマンドを起動すると、プロセスのタイトルが空になります。タスクマネージャーによると、起動されたコマンドは次のとおりです。
cmd /c ""C:\path\to\script.bat" "
私は何かが足りないのですか?
注:サービスにタイトルを設定しようとしています。これは、サービスの停止フックでタイトル名をパラメーターとして使用して「taskkill」コマンドを起動するよりも、サービスを停止するためのよりクリーンな方法が見つからなかったためです(生成されたプロセスのPIDをキャッチする方法がわからない)
ありがとう。