最初はこれが「daemon」コマンドのコマンドだと思いましたcommand &
が、わかりましたがcommand -D
正しいコマンドでした。正確に何をしますかcommand &
?この特定のオプションに関する情報はどこにも見つからず、名前と技術の詳細があるかどうかを知りたいです。
答え1
最初はシェルが組み込まれていたので少し混乱しましたcommand
(これらの機能が存在する場合は、シェル関数ではなくコマンドでユーティリティを実行します)。
あなたは使う
$ utility &
utility
非同期プロセス(バックグラウンドプロセス/タスク)から始まりました。
bash
マニュアルから:
コマンドが制御演算子によって終了すると、
&
シェルはサブシェルのバックグラウンドでコマンドを実行します。シェルは、コマンドが完了するのを待たずに状態0を返します。
dash
マニュアルから:
コマンドが制御演算子&記号(
&
)によって終了すると、シェルはコマンドを非同期的に実行します。つまり、シェルは、次のコマンドを実行する前にコマンドが完了するのを待ちません。バックグラウンドでコマンドを実行する形式は次のとおりです。
command1 & [command2 & ...]
(これは次のとおりです。POSIXの説明&
)
一部のユーティリティ(通常デーモン)には、バックグラウンドに移動させるフラグがあり、これらのユーティリティで-D
使用される一般的なフラグである可能性があり--daemon
ます-d
。時々-d
(またはどんなフラグでも)防ぐユーティリティ自体はバックグラウンドに移動します。たとえば、sshd -d
SSHデーモンプロセスがバックグラウンド自体に移動するのを防ぎ、代わりにフォアグラウンドプロセスとして実行し、代わりにすべてのログ出力を標準出力に送信しますsyslog
(この-d
フラグは「デバッグ」を示します)。
ただし、これらのフラグの標準はありません。これらのタスクをサポートする各ユーティリティは、異なるフラグを介してそれらを実装できます。使用している特定のユーティリティのマニュアルを読む必要があります。