mjpg_streamerを使ってWEBカメラの映像をストリーミング配信するというのをやっている。
配信を開始するのは「Orange Pi + C270 + eBay廉価カメラ で動画を2つストリーミング配信する。」あたりに書いた方法でいいのだが、止めるのはどうするのかというお話。
kill プロセスID
とする。
プロセスIDはプロセスに割り当てられた番号で、これが分からないと止められないようだ。
まあ、確かに、mjpg_streamerを2つ動かしてたりするわけだから、ファイル名とかでは判断できない。
プロセスIDの確認には、実行中のプロセスを表示するコマンドを使う。
ps [a][u][z]
a:自分以外のユーザーのプロセスも表示
u:ユーザー名と開始時刻を表示
x:制御端末のないプロセスの情報も表示
要は、
ps aux
とすれば全部表示される。
たくさんあり過ぎて、自分の止めたいプロセスがどこにあるやら、って感じになる。
grepとパイプを使うと便利だ。
具体的には、
ps aux | grep mjpg_streamer
ずらずら表示されるリストのうち、mjpg_streamerを含むものだけが検索されてパイプを通過して表示される。
赤枠で囲った数字(左から2番目)がプロセスIDだ。
ポートの8090でストリーミング配信している方を止めたければ、
kill 1408
とするわけだ。
ps auxで表示される内容は以下の通り。
USER, PID, %CPU, %MEM, VSZ, RSS, TTY, STAT, START, TIME, COMMAND
一目で意味が分からない物だけ書くと、
VSZ:仮想分も含めた使用サイズ(Kバイト)
RSS:実メモリ上の使用サイズ(Kバイト)
TTY:端末名
だそうだ。
1 2 |
root 1559 1.5 0.1 49796 1168 ? Sl 14:42 0:42 mjpg_streamer -b -i /usr/lib/input_uvc.so -d /dev/video0 -r 800x400 -f 20 -o /usr/lib/output_http.so -p 8080 -w /usr/www root 1589 45.6 0.3 50180 3988 ? Sl 14:43 19:25 mjpg_streamer -b -i /usr/lib/input_uvc.so -d /dev/video1 -r 800x600 -f 20 -l off -y -o /usr/lib/output_http.so -p 8090 -w /usr/www |
MJPGの方がCPUの負荷が少ないことがわかる。
ほぼ同じ時刻にスタートしたのに、一方は19:25で、一方は0:42とかなっている。