「command &」実行と「command -D」実行の違いは何ですか?

「command &」実行と「command -D」実行の違いは何ですか?

最初はこれが「daemon」コマンドのコマンドだと思いましたcommand &が、わかりましたがcommand -D正しいコマンドでした。正確に何をしますかcommand &?この特定のオプションに関する情報はどこにも見つからず、名前と技術の詳細があるかどうかを知りたいです。

答え1

最初はシェルが組み込まれていたので少し混乱しましたcommand(これらの機能が存在する場合は、シェル関数ではなくコマンドでユーティリティを実行します)。

あなたは使う

$ utility &

utility非同期プロセス(バックグラウンドプロセス/タスク)から始まりました。

bashマニュアルから:

コマンドが制御演算子によって終了すると、&シェルはサブシェルのバックグラウンドでコマンドを実行します。シェルは、コマンドが完了するのを待たずに状態0を返します。

dashマニュアルから:

コマンドが制御演算子&記号(&)によって終了すると、シェルはコマンドを非同期的に実行します。つまり、シェルは、次のコマンドを実行する前にコマンドが完了するのを待ちません。

バックグラウンドでコマンドを実行する形式は次のとおりです。

command1 & [command2 & ...]

(これは次のとおりです。POSIXの説明&)

一部のユーティリティ(通常デーモン)には、バックグラウンドに移動させるフラグがあり、これらのユーティリティで-D使用される一般的なフラグである可能性があり--daemonます-d。時々-d(またはどんなフラグでも)防ぐユーティリティ自体はバックグラウンドに移動します。たとえば、sshd -dSSHデーモンプロセスがバックグラウンド自体に移動するのを防ぎ、代わりにフォアグラウンドプロセスとして実行し、代わりにすべてのログ出力を標準出力に送信しますsyslog(この-dフラグは「デバッグ」を示します)。

ただし、これらのフラグの標準はありません。これらのタスクをサポートする各ユーティリティは、異なるフラグを介してそれらを実装できます。使用している特定のユーティリティのマニュアルを読む必要があります。

関連情報