1

2 つのプログラム (cxLog と cx) を開始するスクリプト (runcx) があります。混乱全体を殺すことができるようにしたいので、スクリプトを作成しました:

50:/root # cat stop
killall runcx
killall cx
killall cxLog

しかし、うまくいきません:

50:/root # ./stop
: no process killed
: no process killed
: no process killed

一方、個々のコマンドは次のことを行います。

50:/root # killall runcx
50:/root # killall cx
killall: Could not kill pid '256': No such process
50:/root #

(cx はスレッドを使用しており、親プロセスが強制終了されたときに pid '256' が消えたようです)

何が起きてる?タイピングせずにプログラムを強制終了するにはどうすればよいですか? 環境は Linux カーネル 2.4.26 で、かなり古いバージョンの busybox です。

4

1 に答える 1

1

上記のすべてを入力した後、投稿ボタンを押す前に、これを理解しました。vimを使用してPCでスクリプト「stop」を作成しました。デフォルトのファイル形式はdosです。したがって、killall は「runcx^M」、「cx^M」、および「cxLog^M」という名前のプログラムを強制終了しようとしていました。^M を削除したところ、スクリプトの動作が大幅に改善されました。

于 2012-10-12T20:30:29.400 に答える