問題タブ [exitstatus]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
bash - コマンドの実行後にスクリプトが突然終了するのはなぜですか?
次の手順に従って Dash のドキュメントセットを生成しようとしています: http://kapeli.com/docsets。問題は、wget の後にスクリプトが続行されず、エラーがスローされないように見えることです。スクリプトをターミナルにコピーすると、すべて正常に動作します。
MacOS 10.8.4 とデフォルトの bash を使用しています。
My shell script stop after execのような他の投稿を見ましたが、ここでは使用していませんexec。
スクリプトが終了するのはなぜですか?
bash - bash スクリプトを追跡する方法 - 終了ステータスと失敗した理由
時々、次のようなコマンドを実行する必要があります:
大きなファイル (2 ~ 32 GB のサイズ)。夕方にコマンドを開始し、朝になるとoutput.txtが空でプロセスが実行されていないことがあります。
どうすれば何が起こっているのかを追跡できますか? コマンドが失敗した理由と時期 パイプラインが正常に終了する場合があるため、パイプラインが機能していることはわかっています。
どうもありがとう!
更新: この計算を実行しているサーバーはインタラクティブな使用のみが推奨されているため、プロセスが強制終了されたと思います。これが正しい場合、ログファイルから確認できる唯一のことは、成功していない、つまり完了していないということです。
私のプロセスが実際に強制終了されたことを確認する方法はありますか? ありがとう。
executable - 予約済みスペース フォームのカスタム アプリケーション エラー コードはありますか?
アプリケーション固有のエラー コード (終了ステータス) をいくつか定義する必要があります。私たちの使用例: アンインストーラー si を呼び出してアプリケーションをオンラインで非アクティブ化します。これは、複数の理由 (インターネットがない、内部サーバー エラーなど) で失敗する可能性があります。アプリケーション固有のエラー コード用に予約された間隔があるので、干渉する可能性はありませんか?
ありがとう
bash - 速記インクリメント表記の Bash 終了ステータス
bash の表記のリターン ステータスに明らかな矛盾があることに気付きました。
次のことを考慮してください(( ))
ただし、他のよく知られた省略形のインクリメント表記法を使用すると、次の結果が得られます。
スクリプトにビルトインがある場合、返された非ゼロset -eの終了ステータスにより、2 番目の表記によってスクリプトが終了します。この質問は、この関連する質問((A++))で多かれ少なかれ対処されました。しかし、2 つの表記の終了ステータスの違いを説明していないようです。((A=A+1))((A++))
((A++))equals1の場合にのみ返されるようです。(免責事項: 完全なテストは行っていません。bash 4.1.2 および 4.2.25 でテスト済み)。したがって、最後の質問は次のようになります。A0
なぜA=0; ((A++))戻るの1ですか?
tee - ティーの終了ステータス>(...)
私は実行しています:
Command2はgrepの終了ステータスに基づいて実行されますが、現在の構成ではteeの結果に基づいて実行されています。
私の知る限り、pipefail と pipestatus はここでは機能していません (間違っている場合は修正してください)。
アレクセイの回答に基づくオリジアンの質問への修正
も試しCommand1 | tee >(grep sth || Command2)ましたが、これは元の質問で機能しますが、サブシェルでテストのステータスを設定しようとしているためです。ex、そして後で私のコードの他のチャンクでResultCommand 1 | tee>(grep sth || Result="PASSED")にアクセスできます。だから私はまだ問題があります。
ありがとう
c++ - waitpid の早期呼び出しで終了ステータスが正しく収集されない
次のコードを使用してプロセスをフォークし、後で停止するように通知しています。
このコードは (予想どおり) 次のように出力
します。
採寸して終了。
測定プロセスは 42 を返しました。
ただし、kill ステートメントの後に sleep ステートメントを省略すると、代わりに次のようになり
ます。
測定プロセスは信号 80 で終了しました
。測定は終了しました。
3 秒待つかどうかによって結果が異なるのはなぜですか? 子供が戻ってくるまで待つべきではありませんか? これは私のアプリケーションでは (現時点では) あまり重要ではありませんが、正しく行う方法を理解したいと思います。子プロセスに停止するように通知し、「適切に」終了するまで待ちたいと思います。
助けてくれてありがとう、
ルッツ
multithreading - スレッドの終了ステータスを取得する方法
親プロセスから各スレッドの終了ステータスを取得する perl スクリプトを作成しています。join() を使用すると、スレッドの適切な終了ステータスを取得できません。
親プロセスから各スレッドの終了ステータスを取得する方法は?
ここにコードがあります
bash - Bash Scripting のコマンドの終了ステータスは常に true です
bash でコマンド ( gerrit query ) を実行し、それを変数に割り当てようとしています。私はこれをbashスクリプトファイルとして使用しています。コマンドがエラーをスローした場合(つまり、gerritクエリが失敗した場合)を処理したいのですが、同じことを処理できるはずです。
例えば:
$? を使用して最後の終了ステータスを確認できることは知っています。ただし、上記の場合、変数への割り当ては以前の終了ステータス (つまり、gerrit クエリの失敗ステータス) を上書きし、上記のコマンドは決して失敗しません。それは常に真実です。
コマンドが bash の変数に割り当てられている場合でも、コマンドの終了ステータスを処理する方法があれば教えてください。
更新:
割り当てが終了ステータスのオーバーライドを引き起こしているという私の仮定はここで間違っていました.Charlesの例と彼の答えの説明は正しいです. 終了ステータスがオーバーライドされた本当の理由は、上記のコマンドの出力を sed スクリプトにパイプしていたためでした。これが終了ステータスをオーバーライドする原因でした。問題を解決するのに役立つ以下を見つけました。https://unix.stackexchange.com/questions/14270/get-exit-status-of-process-thats-piped-to-another/73180#73180 出力をパイプし、Bash で終了ステータスをキャプチャする
私が試していた完全なコマンド。
変数=ssh -p $GERRIT_PORT_NUMBER $GERRIT_SERVER_NAME gerrit query --current-patch-set $PATCHSET_ID | sed 's/message//'
makefile - サーバーの起動、テストの実行、サーバーの停止
次のような Makefile ターゲットがあります。
これが私がやっていることです:
- Java コマンドは、Amazon の DynamoDB のローカル インスタンスを開始します。
- 開始するまで3秒かかります
- 統合テストを実行します
- 私はデータベースを殺します
私が望むのは、テストが成功したかどうかに関係なく、データベースを強制終了することです。そのためには、テストコマンドの終了ステータスが必要であり、テストが失敗した場合でも成功した場合でもそれを返します。
何が起こっているかというと、テストに合格した場合はデータベースが正しく強制終了され、テストが失敗した場合はそうではありません。
コマンドの前にコマンドを追加して、ゼロ以外の終了ステータスが生成された場合に無視できることをドキュメントで読みました。これを行う場合の問題は、テストが失敗したかどうかがわからないことです。常に 0 を返します。-make$?
このシナリオでの通常のプラクティスは何ですか? 問題が解決する場合は、ターゲットをより多くのターゲットに分割しても問題ありません。
ありがとうございました。