• ベストアンサー

実行中のcpan processを終了させる方法をご存知ないでしょうか。

windowsのコマンドプロムプトからcpanシェルを起動しモジュールをインストールした際、cpanシェルをquit等で終了せずに、そのままコマンドプロムプトのウインドウを閉じました。再度cpanシェルを起動しようとしたところ、別のcpan processが実行中であると表示が出ます。その実行中のcpan processを終了させる方法をどなたかご存じありませんか。お手数ですが、ご回答の程よろしくお願いします。(コンピュータに詳しくありませんので、出来るだけ簡単に説明して頂ければ幸いです。) 再度cpanシェルを実行した際のプロムプト画面(一部"***"に書換えています): -------------------------------------------------------------- C:\***>perl -MCPAN -e shell Exiting subroutine via last at C:/Perl/lib/CPAN.pm line 1337. There seems to be running another CPAN process (pid ***). Contacting... Other job is running. Shall I try to run in degraded mode? (Y/n) [y] n You may want to kill the other job and delete the lockfile. On UNIX try: kill *** rm C:\Perl\cpan\.lock -------------------------------------------------------------- 以上です。

質問者が選んだベストアンサー

  • ベストアンサー
  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.2

windows2000くらいから、tasklist.exe taskkill.exe という 外部コマンドが増えてますので、これを使うのも一つかと。 ただ、質問の文を読む限りでは、ロックファイルを削除するだけで 動いてくれそうな気がするんですがどうでしょう? tasklist /? TASKLIST [/S システム [/U ユーザー名 [/P [パスワード]]]] [/M [モジュール] | /SVC | /V] [/FI フィルタ] [/FO 形式] [/NH] 説明: このコマンド ライン ツールによってローカルまたはリモートのシステム で実行されているアプリケーションと関連付けられたタスクまたはプロセスの 一覧が表示されます。 パラメータ一覧: /S システム 接続するリモート システムを指定します。 /U [ドメイン\]ユーザー コマンドを実行するユーザー コンテキストを 指定します。 /P [パスワード] 提供されたユーザー コンテキストのパスワードを 指定します。省略された場合は、入力を要求します。 /M [モジュール] 指定されたパターン名に一致する DLL モジュールを 読み込んだすべてのタスクの一覧を表示します。モ ジュール名が指定されない場合、それぞれのタスクに よって読み込まれたすべてのモジュールを表示します。 /SVC それぞれのプロセスのサービスを表示します。 /V 詳細な情報を表示するように指定します。 /FI フィルタ フィルタによって指定された、与えられた条件に一致 するタスクを表示します。 /FO 形式 出力の形式を指定します。 有効な値: "TABLE", "LIST", "CSV"。 /NH 出力するときに、"カラム ヘッダー"を 表示しないように指定します。 "TABLE" と "CSV" のみ有効です。 /? ヘルプまたは使用法を表示します。 フィルタ: フィルタ名 有効な演算子 有効な値 ----------- --------------- -------------- STATUS eq, ne RUNNING | NOT RESPONDING IMAGENAME eq, ne イメージ名 PID eq, ne, gt, lt, ge, le PID 値 SESSION eq, ne, gt, lt, ge, le セッション番号 SESSIONNAME eq, ne セッション名 CPUTIME eq, ne, gt, lt, ge, le hh:mm:ss の形式の CPU 時間です。 hh は、時間、 mm は 分、ss は、秒です。 MEMUSAGE eq, ne, gt, lt, ge, le メモリ使用 (KB) USERNAME eq, ne [ドメイン\]ユーザーの形式の ユーザー名です。 SERVICES eq, ne サービス名 WINDOWTITLE eq, ne ウィンドウ タイトル MODULES eq, ne DLL 名 例: TASKLIST TASKLIST /M TASKLIST /V TASKLIST /SVC TASKLIST /M wbem* TASKLIST /S システム /FO LIST TASKLIST /S システム /U ドメイン\ユーザー名 /FO CSV /NH TASKLIST /S システム /U ユーザー名 /P パスワード /FO TABLE /NH TASKLIST /FI "USERNAME ne NT AUTHORITY\SYSTEM" /FI "STATUS eq running" >taskkill /? TASKKILL [/S システム [/U ユーザー名 [/P [パスワード]]]] { [/FI フィルタ] [/PID プロセスID | /IM イメージ名] } [/F] 説明: このコマンド ライン ツールは、複数のプロセスを終了するために使われます。 プロセス ID またはイメージ名を使って終了できます。 パラメータ一覧: /S システム 接続するリモート システムを指定します。 /U [ドメイン\]ユーザー コマンドが実行されるユーザー コンテキストを 指定します。 /P [パスワード] 提供されるユーザー コンテキストのパスワードを 指定します。省略された場合は、入力を要求します。 /F プロセスの強制終了を指定します。 /FI フィルタ フィルタによって指定された、与えられた条件に一致 するタスクを表示します。 /PID プロセスID 終了させるプロセスの PID を指定します。 /IM イメージ名 終了させるプロセスのイメージ名を指定します。 ワイルドカード '*' を使用してすべてのイメージ名を 指定できます。 /T ツリー削除: 指定したプロセスとそのプロセスが開始 したすべてのプロセスを削除します。 /? このヘルプまたは使用法を表示します。 フィルタ: フィルタ名 有効な演算子 有効な値 ----------- --------------- -------------- STATUS eq, ne RUNNING | NOT RESPONDING IMAGENAME eq, ne イメージ名 PID eq, ne, gt, lt, ge, le PID 値 SESSION eq, ne, gt, lt, ge, le セッション番号です。 CPUTIME eq, ne, gt, lt, ge, le 次の形式の CPU 時間 hh:mm:ss hh - 時間 mm - 分、ss - 秒 MEMUSAGE eq, ne, gt, lt, ge, le メモリ使用量 (KB) USERNAME eq, ne [ドメイン\]ユーザー の形式の ユーザー名です MODULES eq, ne DLL 名 SERVICES eq, ne サービス名 WINDOWTITLE eq, ne ウィンドウのタイトル 注意: /IM スイッチのワイルドカード '*' は、フィルタと使うときのみ有効に なります。 注意: リモート プロセスの終了は、/F オプションの指定したかどうか にかかわりなく強制的に実行されます。 例: TASKKILL /S system /F /IM notepad.exe /T TASKKILL /PID 1230 /PID 1241 /PID 1253 /T TASKKILL /F /IM notepad.exe /IM mspaint.exe TASKKILL /F /FI "PID ge 1000" /FI "WINDOWTITLE ne untitle*" TASKKILL /F /FI "USERNAME eq NT AUTHORITY\SYSTEM" /IM notepad.exe TASKKILL /S system /U domain\username /FI "USERNAME ne NT*" /IM * TASKKILL /S system /U username /P password /FI "IMAGENAME eq note*"

findanswer
質問者

お礼

丁寧なご回答を頂き、誠にありがとうございます。 まず、tasklistコマンド等を実行しましたが、目的のプロセスIDは見つかりませんでした。 次に、C:\Perl\cpan\.lock を削除し、再度CPANシェルを起動したところ見事に問題は解決致しました。 ご回答を頂き、大変ありがとうございました。 ロックファイル削除後: --------------------------------------------------------------- C:\Documents and Settings\Owner>cpan Exiting subroutine via last at C:/Perl/lib/CPAN.pm line 1337. cpan shell -- CPAN exploration and modules installation (v1.9102) ReadLine support enabled cpan> quit Lockfile removed. --------------------------------------------------------------- 以上。

その他の回答 (1)

回答No.1

タスクマネージャを起動して、プロセスの一覧に それっぽいの(perl.exe とか)がありませんか? 指定して「プロセスの終了」してみては。

findanswer
質問者

お礼

早速ご回答を頂き、誠にありがとうございました。 目的のPIDを持ったプロセスは見つけることができませんでしたが、問題は無事解決致しました。 ご回答を頂き、誠にありがとうございました。

関連するQ&A