Linuxにブートパラメータがある場合は、カスタムスクリプトを実行する最良の方法は何ですか?

Linuxにブートパラメータがある場合は、カスタムスクリプトを実行する最良の方法は何ですか?

Linux起動フラグのパラメータを使用してカスタム起動スクリプトを実行したいと思います。

私は、次のように起動するとフラグがあるかどうかを確認するためにbashスクリプトを実行するシステムサービスを作成すると思います。

#!/bin/bash
CMDLINE="$(cat /proc/cmdline)"

if [[ "$CMDLINE" == *"myflag"* ]]; then
  echo "It's there."
fi

もっと良い方法がありますか?

ベストアンサー1

豪華に飾りたい場合は、「より良い」アプローチを使用することをお勧めします。システム構築者SourcePath=/proc/cmdline;ジェネレータはカーネル起動パラメータを使用し、そこから続行するように設定できます。

あなたが使用しているシステムユニットに固執してください。単位定義で条件を指定する:

[Unit]
ConditionKernelCommandLine=myflag

systemdの詳細を扱うことなく、スクリプトはすでに作業を行っていますが、よりコンパクトなものが必要な場合は、次のように書き直すことができます。

#!/bin/sh

if grep -qw myflag /proc/cmdline; then
  echo "It's there."
fi

でも

#!/bin/sh
grep -qw myflag /proc/cmdline && echo "It's there."

旗が私たちに-q教えてくれるgrepいいえ出力一致は、成功または失敗という終了ステータスのみを反映します。この-wフラグは完全な単語のみが一致することを保証するため、notmyflag実行されません。

おすすめ記事