![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_15.png?5a7ff87)
system関数でシェルコマンドを発行しているC言語のプログラムがあります。
起動されるシェルコマンド(Cシェル)は2重起動防止のため以下の様にコマンド名をgrepしてPIDを取得し、2つ以上あると2重起動と見なしてコマンドを終了させています。
ps -aef | grep 自身のコマンド名 | grep -v grep ~
この時1回目の起動であるのに2重起動チェックに引っかかってしまいコマンドが実行されませんでした。
デバッグしたところ"csh コマンド名"のPIDとは別に一瞬"sh -c コマンド名"というプロセスがあってそれのPIDと合わせて2つに起動していると見なしていました。
調べたところsystem関数はsh経由(sh -c)でコマンドを実行するためだと言う事が分かり納得出来ました。
また元々バックグラウンドで起動させたいコマンドだったので以下の様に"&"を付与したところ2重起動チェックには引っかからなくなりました。
system("コマンド名 &")
バックグラウンド起動させても2重起動チェックで弾かれれば納得出来るのですが、通常の起動と何が違うか分からずに釈然としません。
良く分かりませんが、通常起動だとオーバーヘッドで実行に時間がかかりチェックで弾かれるけど、バックグラウンドだと一瞬で起動されてたまたま上手く行った様に見えるだけだったりするなどなのでしょうか??
もしご存知の方がいらっしゃいましたらご教示頂けると幸いです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux cronの@rebootでのdateコマンドの実行につきまして 2 2023/06/11 16:23
- サーバー ログオンユーザーがいない場合に自動再起動 1 2022/09/28 09:53
- UNIX・Linux ubuntuに外部侵入できるか 2 2022/04/09 12:48
- デスクトップパソコン デスクトップPCがメーカーロゴから動きません 4 2022/08/14 15:54
- その他(メールソフト・メールサービス) Thunderbirdの起動時に表示されるメッセージを非表示にしたい 1 2023/02/17 19:08
- その他(プログラミング・Web制作) Pythonの作業環境・作業フォルダの迅速な設定・指定方法 3 2022/04/01 07:55
- UNIX・Linux Linuxのパッケージ更新で更新前に再起動が必要か確認する方法を教えてください。 needs-res 2 2022/03/24 20:30
- ドライブ・ストレージ デスクトップパソコンOSについて デスクトップパソコンスペック、Inteli54460 HD4600 3 2023/04/17 01:57
- サバイバルゲーム 統合版のマイクラでパワードレールをレッドストーンやレッドストーントーチなしで起動させるコマンドド 1 2023/04/06 16:32
- Windows 10 WIN10(MAC-bootcamp)で 起動時のパスWが どうにもならない 2 2023/06/30 11:40
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
Cからシェルを起動し返り値をハンドリングする方法
C言語・C++・C#
-
system関数のエラー検出
C言語・C++・C#
-
system関数がうまくいかない
C言語・C++・C#
-
-
4
systemの戻り値を取得する方法
C言語・C++・C#
-
5
コマンド(例えばls)の出力結果を文字列で取得するプログラムの作成方法
C言語・C++・C#
-
6
C言語にてsystem関数を用いてシェルを起動するというプログラムを作
C言語・C++・C#
-
7
DOS窓の非表示
C言語・C++・C#
-
8
C++のプログラムをバックグラウンドで実行
C言語・C++・C#
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
TEXの表の位置が・・・
-
ttlで戻り値を取得する方法
-
viの行削除コマンドを教えて下...
-
ACCESSのサブフォームの...
-
EEPROMのデータの初期化について
-
SSI(Server Side Include)って...
-
ロータスノーツ、アクションに...
-
Access2007のマクロ
-
ポスタル2の体験版で・・・
-
vbsによるユーザ情報の取得につ...
-
バッチファイルでキー操作を行う。
-
ローマ字入力で「トゥ」を入力...
-
教えてgoo、dポイントとアカウ...
-
1点の辻の字に変換したいがエク...
-
チケット何回もエラーは高額請求?
-
APEXをやっていたらこんなエラ...
-
PCの内蔵メモリにデータは残る?
-
高速フーリエ変換でデータ数が...
-
「未使用」と「不使用」ってど...
-
飛び続けるボイジャーの最終目...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチファイルでキー操作を行う。
-
コマンドプロンプトで表示が多...
-
コマンドプロンプトが実行中か...
-
ttlで戻り値を取得する方法
-
VBユーザーフォームで時間入力
-
Tera Term Proに関する質問です。
-
TEXの表の位置が・・・
-
EEPROMのデータの初期化について
-
別のユーザーフォームのコマン...
-
PowerShell実行結果をデスクト...
-
コンボボックス(最終行取得)
-
コマンドキーがないんですけど...
-
コマンドプロンプトですべてのU...
-
RTX1100の削除コマンド
-
dosバッチ起動後、画面を閉じな...
-
ディスクの空き容量を取得する...
-
文字の点滅はどうやるのですか?
-
ルーターにつながっている全て...
-
makeコマンドのエラー
-
UDP通信での受信方法について
おすすめ情報