私はどちらか一方を行うことはできますが、両方を行うことはできません。アンパサンドを使用してバックグラウンドで実行すると、期待どおりに機能します。
popen( "gzip -dc diskImageFile.gz | dd bs=32000000 of=/dev/sd%c status=progress &" );
そして、stderrをstdoutにリダイレクトするように設定すると、期待どおりに機能します。
popen( "gzip -dc diskImageFile.gz | dd bs=32000000 of=/dev/sda status=progress 2>&1" );
しかし、両方を実行しようとすると、バックグラウンドで実行されなくなります。stderrのリダイレクトとバックグラウンドでの実行の両方を行うにはどうすればよいですか?
popen( "gzip -dc diskImageFile.gz | dd bs=32000000 of=/dev/sda status=progress 2>&1 &" );
私はこれをラズベリーパイ(Debian)でやっています
popen
呼び出しプロセスとは独立して実行される別のプロセスを開始します。そのアンパサンドをバックグラウンドで実行しても意味がありません。すでに実行されています。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加