
status -p $pidfile -l $lockfile $prog
このコマンドはCentOS - /bin/shシェル用です。
/bin/bash
ただし、シェル(またはまた)を使用してzsh
Ubuntu 14.04で同じコマンドを実行しようとするとエラーが発生します。
status: invalid option: -p
Try `status --help' for more information.
status
Ubuntuでpidfileの位置パラメータをコマンドに渡すにはどうすればよいですか?
答え1
状態 -p $pidfile -l $lockfile $prog
これはRHEL / CentOS 6のシェル機能ですstatus()
。それはまた呼ばれる/etc/rc.d/init.d/functions
statusproc()
最初からLinux世界。
これはあなたがしていることが非常に間違っていることを示しています。rc
一般的な対話型シェル外部コマンドと組み合わせて、System 5スクリプトで使用できる特別なシェルヘルパー機能を混同しています。rc
UbuntuでSystem 5スクリプトを作成しています。そして、PIDファイルとロックファイルを使用しています。
- PIDファイルを使用しないでください貧しい人々のサービスで追跡します。 ロックファイルを使用しないでください貧しい人々のためのサービスも互いにつながっています。それぞれupstartとsystemdを持つUbuntu Linuxバージョン14と15ではまったく必要ありません。不安定なPIDファイルとロックファイルは必要ありません。 systemd と upstart の両方が同じサービスが 2 回開始されないことを保証し、最初にそのプロセスをフォークしたので、サービスプロセスのプロセス ID を正しく追跡します。これにより、次のような気がしました。
rc
Ubuntu Linuxでは、System 5スクリプトを作成しないでください。バージョン14にはすでに起動があり、バージョン15にはCentOS 7、RHEL 7、およびDebian 8と同様にsystemdがありますrc
。長い間、Ubuntu LinuxでSystem 5スクリプトを書く理由はありませんでした。まだ一つあります。確かにUbuntu Linuxに戻る場合は、そこから始めてはいけません。 (誤って)rc
CentOSからSystem 5スクリプトをインポートしようとしたため、ここで起動した場合も次のようになります。status()
シェル機能に依存しないでくださいオペレーティングシステム全体で、または同じオペレーティングシステムの異なるバージョンでも可能です。前述のように、LFSでは異なる名前があります。これはFedora 2009の「新しい」LSBサポート機能ではありません。この関数には強制されたstatus
System 5スクリプト操作もありませんrc
。Debian Policy Manualまず、LSBヘルパーシェルライブラリには(わずかに異なる)ヘルパー機能がありますstatus_of_proc()
。
Ubuntu バージョン 14 の場合は、スタートアップの「作業ファイル」を作成し、CentOS 7、RHEL 7、Debian 8、Ubuntu 15 の場合はシステム「サービス単位」を作成します。 upstart と systemd はそれぞれ (initctl status
という単純な shim を使用してstatus
) およびsystemctl status
、サービス状態コマンドを提供します。業務書類またはサービスユニットでサポートあなたは何もする必要はありません。
追加読書
- https://unix.stackexchange.com/a/200281/5132
- FC新規初期化。 2009. FedoraプロジェクトWiki。
- 「
status
機能」。 パッケージ: SysVInitScript。 2008. FedoraプロジェクトWiki。 - https://superuser.com/a/912648/38062
- https://unix.stackexchange.com/a/194653/5132
- レナート・ペトリング(2013-10-07)。
systemctl
。システムのマニュアルページ。 freedesktop.org. - ジェームズハントとクリントバイラム(2014)。 「公共施設」。 ヌボリッチレシピ。
答え2
CentOS 6.5のバージョンはstatus
パッケージで0.6.5ですupstart
。 Ubuntu 14.04の
バージョンはstatus
1.12.1で、パッケージにもありますupstart
。
これらのどれもこの-p
オプションを許可しません。
Upstartではstatus
何らかの方法でPIDFILEを指定することはできません。ジョブを指定してスクリプトに渡すためのkey = valueパラメーターを指定します。他のコマンドラインオプションを見ることができますstatus --help
。
CentOS 7はUpstart(systemdに切り替え)を使用しなくなったため、CentOS 7にはありませんstatus
(少なくともインストールにはありません)。どのパッケージがstatus
CentOS(yum whatprovides $(which status)
)にパッケージを提供しているのかを調べて、Ubuntuにインストールできることを確認して代替状態を取得できます(他の衝突しない名前も可能であることを願っています)。