upstart
スクリプトを変換しようとしていますが、systemd
コマンドライン引数を実行可能ファイルに渡す方法がわかりません。元upstart
のスクリプトは次のとおりです。
# job description
description "job description"
start on (started wrouterd and wrouterd-started)
stop on (stopping wrouterd)
instance $SLUG[$PHONE]
chdir /var/application/bin
console log
manual
respawn
respawn limit 5 60
exec /usr/bin/php my_script.php --phone=${PHONE} --slug=${SLUG}
これが私が今まで得たものです:
[Unit]
Description=service description
After=wrouterd.service
[Service]
Type=simple
WorkingDirectory=/var/application/bin
StandardOutput=tty, StandardError=tty
Restart=on-failure
RestartSec=30s
ExecStart=/usr/bin/php my_script.php --phone=${PHONE} --slug=${SLUG}
私は環境ファイルの内容を読んでいますが、次のように表示されているので、そのファイルが私のケースに適用されるかどうかはわかりません。ここ「サービスはオプションを頻繁に変更しないでください。」 「サービスパラメータは定期的に変更されず、設定ファイルも変更されません。」現在、このジョブのインスタンスが約130個ほど同時に実行されています。いつでも開始および停止できる必要があります。時間。各インスタンスの環境ファイルを生成する必要がありますか?または、単一の環境ファイルで変数を変更してからスクリプトを起動/停止する必要がありますか?
答え1
たぶんあなたが探していると思います。はい。これを見てブログユニットへのシンボリックリンクを作成して、必要なだけ単一のgettyユニットをインスタンス化する方法について説明します。ファイル名には、ユニットに渡された任意の引数が含まれています。これは、またはに戻すことができ%I
ます%i
。
例えば、
systemctl start [email protected]
まず、正しいファイル名を持つファイルを見つけて、そのttyUSB0
部分を削除し、[email protected] file
デバイス内で次の行を見ることができます。/usr/lib/systemd/system/[email protected]
ExecStart=-/sbin/agetty -s %I 115200,38400,9600
ttyUSB0
これにより、gettyは代わりにargを使用します%I
。
すべて読むことを強くお勧めしますブログシリーズシステムに。