P-cmd

==================================================

parted

MBR (Master Boot Record) と GPT (GUID Partition Table) の両形式に対応した、パーティションの作成や削除

MBR:最大サイズ 2TB のパーティションを管理する方式
GPT:最大サイズ 8.5ZB のパーティションを管理する方式
   OS が 64bit で、パーティーションの分割が 4 つ以上

書式:partedデバイス名 [−sサブコマンド]: 

mklabel [gpt | msdos]新しいパーティションテーブルを作成。
mkpart 種類 開始 終了指定した種類のパーティションを作成
printパーティション情報を表示する
quitpartedを終了する
rm パーティション番号指定した番号のパーティションを削除する
help利用できるコマンドを表示する

     * mklabelで使用するラベル。大抵の場合 ”gpt”, “msdos” を使用。

labeldetail
aixIBM’s AIX (which introduced what we now know as LVM);
amigaAmiga’s RDB partitioning scheme;
bsdBSD disk labels;
dvhSGI disk volume headers;
gptGUID partition tables;
macold (pre-GPT) Apple partition tables;
msdosDOS-style MBR partition tables;
pc98PC-98 partition tables;
sunSun’s partitioning scheme;
loopraw disk access (loopback-style)

      * mkpart で使用するType。

           fs-type :xfs、ext2、ext3、ext4、fat16、fat32、hfs、hfs+、linux-swap、ntfs、 reiserfs。

使用例

対話モード開始: sudo parted /dev/sda
parted内の作業
  ディスクラベルを作成: (parted) mklabel gpt
  パーティションを作成: (parted) mkpart primary ext4 0% 50%
  パーティションを確認: (parted) print
  対話モードを終了:   (parted) quit

==================================================

pgrep

特定の条件に一致するプロセスを検索し、そのプロセス ID (PID) を表示

書式: pgrep [オプション]

オプション説明
-g, --pgroup <PGID,...>指定されたプロセスグループ ID をマッチングする
-U, --uid <ID,...>指定された実ユーザー ID でマッチングする
-u, --euid <ID,...>指定された有効ユーザー ID でマッチングする
-G, --group <GID,...>指定された実グループ ID をマッチングする
-P, --parent <PPID,...>指定された親プロセスの子プロセスのみをマッチングする
-s, --session <SID,...>指定されたセッション ID をマッチングする
-t, --terminal <tty,...>指定されたターミナルでマッチングする
-x, --exact指定されたコマンド名と正確に一致させてマッチングする
-r, --runstates <state>指定された実行状態 [D,S,Z,…] をマッチングする
--ns <PID>指定された PID と同じ名前空間に属するプロセスをマッチングする
-v, --inverseマッチング条件にマッチしない一覧を表示する
-f, --full完全なプロセス名を使用してマッチングする
-i, --ignore-case大文字小文字を区別せずにマッチングする
-n, --newest最も最近開始されたプロセスを選択する
-o, --oldest最も古く開始されたプロセスを選択する

==================================================

pkill

プロセスを終了する。部分的な名前の一致に基づいてプロセスを終了する場合に特に役立ちます。

sudo pkill -9 uv4l

2. pkill(ピー・キル)

**「名前を指定してプログラムを殺せ(Kill)」**という命令です。 通常、プログラムを止めるには PID(先ほどの459番など)を指定する必要がありますが、pkill を使えば「uv4l という名前が含まれるプロセス」をまとめて見つけ出して止めてくれます。

3. -9(マイナス・ナイン)

これが**「強制終了」**を意味する重要なオプションです。

  • 通常の終了: プログラムに「そろそろ片付けて終わってね」と優しく頼みます。
  • -9: OSがプログラムの言い分を一切聞かず、即座にメモリから消去します。 今回のように、サービスとして認識されていない「野良プロセス」を確実に掃除したいときによく使われます。

4. uv4l

標的となる名前です。名前に「uv4l」が入っているものをすべて探し出します。

==================================================

ps

現在実行中のプロセスを表示する。

オプション 説明
a 他のユーザーのプロセスも表示(xオプションとの併用で全てのプロセスを表示)
f プロセスの親子関係をツリー状で表示
u プロセスの実行ユーザー名も表示。 CPUやメモリの使用率なども表示する
c 実行しているコマンド名を表示する
-u (user) ユーザーを指定して表示する
-g (group) グループを指定して表示する
-p | p (PID) PIDを指定して(プロセスID)にプロセス情報を表示
-l | l 親プロセスのPID(PPID)や実行優先度を決定するnice値(NI)なども併せて表示
x 制御端末の無いデーモン等のプロセスも表示
-e 全てのプロセスを表示
-f 完全なフォーマットでプロセスを表示
-x 現在、実行しているプロセスを表示する
-C 実行しているプロセスやプログラムのファイル名を指定する
ps aux | grep uv4l
kita       736  0.0  0.8   9988  3532 pts/2    S+   05:14   0:00 grep --color=auto uv4l

ps aux
現在このラズパイで動いているすべてのプログラム(プロセス)を表示
a: 自分以外のユーザーが動かしているプログラムも全部。
u: どのユーザーが動かしているか、CPUをどれくらい使っているか詳しく。
x: 画面(ターミナル)に繋がっていない、裏側で動いているもの(デーモン)も全部。
これだけ打つと、画面が文字で埋め尽くされるほど大量の情報が出てきます。

|
左側のコマンドの結果を、そのまま右側のコマンドに**「放り込む(渡す)」**という記号です。

grep uv4l
流れてきた大量の文字情報の中から、「uv4l」という文字が含まれる行だけを抜き出せ

root       459  1.9 19.6 114272 85696 ?        Ssl  04:48   0:31 /usr/bin/uv4l -k --sched-rr --mem-lock --config-file=/etc/uv4l/uv4l-uvc.conf --driver uvc --driver-config-file=/etc/uv4l/uv4l-uvc.conf --server-option=--editable-config-file=/etc/uv4l/uv4l-uvc.conf --device-path 001:003
kita       736  0.0  0.8   9988  3532 pts/2    S+   05:14   0:00 grep --color=auto uv4l

数字(1.9 19.6 114272 85696 ?)の意味

項目値(例)意味
%CPU1.9CPUの使用率。ラズパイの頭脳の約1.9%を使って映像を処理しています。
%MEM19.6メモリの使用率。ラズパイ(Zero 2)のメモリの約19.6%を占有しています。
VSZ114272仮想メモリサイズ (KB)。プログラムが確保したメモリの総量です。
RSS85696実メモリサイズ (KB)。実際に物理メモリを消費している量(約85MB)です。
TTY?端末(ターミナル)の有無? は、あなたが操作している画面とは切り離されて、裏側(バックグラウンド)で動いていることを意味します。

1. 状態と時間の情報

  • Ssl: プロセスの状態です。
    • S: Sleeping(待機中)。常に動いているわけではなく、データが来たら動く効率的な状態。
    • s: セッションリーダー。このプログラムがメインで動いていることを示します。
    • l: マルチスレッド。内部で複数の作業(映像取得、配信、管理など)を同時にこなしています。
  • 04:48: 起動した時刻です。今日の早朝からずっと動き続けています。
  • 0:31: 合計CPU使用時間。起動してから累計で31秒間、CPUが計算に使われました。

2. 特殊な実行オプション

  • -k: 終了時に子プロセスも一緒に殺す設定です。
  • --sched-rr: リアルタイム・スケジューリング。OSに対して「この映像配信は最優先で処理してくれ!」と頼む設定です。カクつきを防ぎます。
  • --mem-lock: メモリのロック。UV4Lが使っているメモリが、勝手にハードディスク(SDカード)に書き出されないように固定します。Zero 2のような低スペック機で速度低下を防ぐ重要なテクニックです。

3. 設定ファイルと権限

  • --config-file / --driver-config-file: どちらも /etc/uv4l/uv4l-uvc.conf を参照しています。このファイルが配信の「設計図」です。
  • --server-option=--editable-config-file=...: ブラウザの設定画面(コントロールパネル)から、直接設定ファイルを書き換えられるように許可しています。

4. 接続先(デバイス)

  • --device-path 001:003: これが決定的な情報です。/dev/video0 という名前ではなく、**「USBバス1番の、3番目のデバイス」**という住所を直接指定してカメラを掴んでいます。

今のあなたのラズパイは、

「早朝4時48分から、メモリをがっちり確保(Lock)し、CPUの優先順位を上げ(RR)、USBの物理的な住所(001:003)を直接指定して、気合の入った(root権限)最高画質優先モードで配信を続けている」

kita 736 0.0 0.8 9988 3532 pts/2 S+ 05:14 0:00 grep –color=auto uv4l

項目意味
USERkitaあなた(一般ユーザー)が実行したことを示します。
PID736この検索コマンドに割り振られた、一瞬だけの識別番号です。
%CPU / %MEM0.0 / 0.8検索するだけなので、パワーはほとんど使っていません。
TTYpts/2あなたが今操作している**ターミナル画面(画面の2番)**で実行されたことを意味します。
STATS+S: 待機中。 +: フォアグラウンド(今まさに目の前の画面で動いている)。
TIME0:00一瞬で終わったので、計算時間はほぼゼロです。
COMMANDgrep –color=auto uv4lこれが本体です。 あなたが打ち込んだコマンドそのものです。

==================================================