• ベストアンサー

プログラムを一時停止→再起動→続きから再実行

http://okwave.jp/qa3279922.html の訂正版です。 OSはubuntu、言語はC++を用いております。 Ctrl+Zでプログラムを一時停止できると思いますが、 そのまま再起動すると、もうそのプログラムは一時停止した場所からは 再開できません。 Ctrl+Zは、プログラムのデータ・状態をHDDに書き込んでいるのだと思いますが、そのファイルが、 1.シャットダウンしても消えないようにする 2.再起動後、プログラムを続ける 方法がありましたら、教えてください。

noname#108554
noname#108554

質問者が選んだベストアンサー

  • ベストアンサー
  • Lean
  • ベストアンサー率72% (435/603)
回答No.4

>そうなのですか、ではどのようにしているのでしょうか? Ctrl+z(サスペンド)によってシグナル(SIGSTOP)をプロセスが受信して、単純にプロセスが停止しているだけ。 なので、プロセスはメモリ上に存在しています。 >1.シャットダウンしても消えないようにする >2.再起動後、プログラムを続ける >方法を教えていただけますか。 メモリ上にあるプロセス、データ等をファイルに退避(チェックポイントみたいなの)して、再開したい場合、その退避したファイルからメモリ上に展開(リスタートみたいなの)しなきゃいけないわけで、どうしてもカーネル内部に何かしらの手を加えないと(もしくはそういう機能がないと)出来ないように思うけど。 なのでそういう機能がない場合には、ユーザランドでのプログラミングだけでは無理だと思うのですが。

noname#108554
質問者

お礼

なるほど、分かりました。ありがとうございました。

その他の回答 (3)

  • masa19
  • ベストアンサー率75% (22/29)
回答No.3
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

>Ctrl+Zは、プログラムのデータ・状態をHDDに書き込んでいるのだと思いますが #1 でも書かれていますが, 基本的にはそんなことはしません. 純粋にプログラムを停止させているだけです. もちろんメモリが足りなくなればページングされますが, それは C-Z とは無関係. もっとも, 「top コマンドで見たメモリ使用率」というのが何をさしているのかわかりませんが.... ということで, >そのファイルが、 >1.シャットダウンしても消えないようにする というのは不可能です. 最初から「ない」んだから, 消えないし消せない. >2.再起動後、プログラムを続ける これもほとんど無理でしょうね. プログラムはともかく, データはなんともならない. 「既に読み込んだデータ」ならまだなんとかなるけど, 「将来的に読み込むはずだったデータ」はどうがんばっても読み込めません.

noname#108554
質問者

お礼

そうですか、ありがとうございました。

  • Lean
  • ベストアンサー率72% (435/603)
回答No.1

>Ctrl+Zは、プログラムのデータ・状態をHDDに書き込んでいるのだと思いますが、 そんな事してないと思いますが。

noname#108554
質問者

お礼

ありがとうございます。 そうなのですか、ではどのようにしているのでしょうか? Ctrl+Zで一時停止した後、topコマンドで見ると、 メモリ使用率は明らかに小さくなりますから、 HDDに書き込んでいないとすると、 topコマンドがウソをついている(?)ということでしょうか。 まあ、それは当面の目的にはさして関係が無いので、 よろしければ、 1.シャットダウンしても消えないようにする 2.再起動後、プログラムを続ける 方法を教えていただけますか。

関連するQ&A

  • プログラムの一時停止

    OSはubuntu、言語はC++を用いております。 Ctl+Zは、メモリの中の実行ファイルのイメージを保存して一時停止しているのだと思いますが、 あんな感じで、再起動した後でも今まで動いていたプログラムを実行しつづけるというのは可能でしょうか? 理想を言えば、 「プログラム中に、データを書き込む(Ctl+Zに相当)ための命令があって、 定期的にその命令を実行し、 再起動後はその命令を最後に実行したところからもう一度実行する。」 ということです。

  • プログラムの一時停止について

    Linuxである計算プログラムを実行しています。そのパソコンをシャットダウンする必要があるので、現在動いているそのプログラムをシャットダウン前に停止して、パソコンの再起動後に計算も復帰させたいと思っております。そのプログラムに一時停止機能はございませんので、OS側でその作業を行いたいと思っています。 はじめ、”kill -STOP プロセスID”でプログラムを停止して、”kill -CONT プロセスID”で復帰できると思ったのですが、それで復帰させようと思うと、そのようなプロセスIDはありませんというエラーメッセージが出ました・・・。パソコンを停止しなければ、そのコマンドで上手く停止・復帰が出来たのですが・・・。 パソコンを再起動しても、実行プログラムを停止・再開させる方法をご存知の方がいれば、是非アドバイスを頂きたいです。

  • 一時停止と再開

    今、Visual Basic でスライドショーのプログラムを作っています。 その中で、プログラムの一時停止(それに伴う再開)という事をしたいのですが、どのようにすればよいかわかりません。 教えて下さい。お願いします。

  • 一時停止プログラムの作成

    いつも皆さんのご意見参考にさせて頂いています。 今日はプログラムについて教えて頂きたいのですが。 先日よりMCの3D加工で悩んでいます・・ 粗取り時間が20時間と長いので工具のチップがもたなくて 2本ダメにしてしまいました。 日中に加工が終われば良いのですが、夜も掛けて帰って 数時間後に見に来ると刃先がなくなっていました。 それで、4時間ほどでチップが駄目になるので その前に一時停止するプログラムを作りたいのですが・・・ NCはファナックの0Mです。 今までCAD・CAMに頼っていたのでイマイチ要領がつかめません。 作りたいプログラムは、加工途中でZを50mm上げて主軸、切削油停止。 サイクルスタートで元の位置まで戻り、再加工。 と言う様なプログラムを作り、編集ソフトで3時間ほどの所に そのプログラムを挿入したいと思っています。 どなたかご教授よろしくお願いします。

    • ベストアンサー
    • CAM
  • 液晶TVでの画面一時停止のノイズの件で教えて下さい。

    液晶TVでの画面一時停止のノイズの件で教えて下さい。 現在、東芝REGZA Z9500 とパナソニックBW680 の組あわせでTV鑑賞をしていますが、結構、一時停止を使います。 で、質問なんですが、東芝REGZA Z9500 のTV画面(外付けHDDは接続していません)で、TVとしての一時停止をした時の画面と、パナソニックBW680 のHDDに録画済みの内容のパナソニックBW680 側のリモコンで一時停止したもの、以上の両者を比較した場合、どう見ても、東芝REGZA Z9500 のTV画面の一時停止画面の方がノイズが少ないと感じるのですが、、、。 やはり、ブルーレイ機器のHDDに録画した内容を同じくブルーレイ機器の側で一時停止した場合は、ノイズがひどくなるんでしょうか? 一時停止同士でも、内容に違いがあるんでしょうか? また、このブルーレイ機器のHDDに録画した内容の一時停止時のノイズを軽減する方法は何かないでしょうか? また、この現象はREGZA Z1 などのLEDライト採用の機器でも起こるのでしょうか?(多分、今回の現象は、ブルーレイ機器側の問題でしょうから、起こるとは思うのですが、一応、お伺いします。 あと、この現象は、パナソニックBW680ではなく、同じく東芝のブルーレイ機器なら起こらないとか?SONY製なら緩和されたりする現象はあるでしょうか? すいません、どんなことでもアドバイスを御願いします。

  • スタートアッププログラムが停止いない

    OS windows7で不要なスタートアッププログラムを停止する為、『システム構成』のスタートアップにある停止したい項目のレ点を外し、リブートすると、確かにタスクバーに常駐アイコンがなくなったのですが、『シャットダウン』してPCを起動すると、又もとの状態になってしまいます。  Q&Aなどみましたが、そのような事例を見ません。 どのような原因か教えてください。

  • WSHで処理を一時停止させたい

    質問です。 バッチファイルからスクリプトを起動させて、 画面のプロパティを開きます。 細かい設定はユーザーにさせたいので、そこで処理を一時停止。 OKを押して、画面のプロパティを終了した時点で、バッチファイルへ戻り、次の処理へ。 という事が出来ないかと考えています。 ・処理を一時停止する方法 ・画面のプロパティを閉じた時点で、バッチファイルの処理を再開させる この2点について、分かる方お願いします。

  • 起動途中で「流れる画面」の一時停止の方法

    パワースイッチをOnして、起動途中で現れるPCのスペック概要等の画面(例:CPU Temp 45℃、CPU Fan 2450rpm 等々)を、一時停止させて、ゆっくり見たいが、どうすればよいか? これらの画面には、PCスペックの概要画面や、RAID設定状況説明画面 等々があるようです。Win XPのフラッグ画面になる前の段階(多分、DOS処理の段階と理解される)で瞬時に表示される画面です。 私の不確かな知識では、DOSコマンド Ctrl+何か(Cか?Sか?)で、一時停止が可能で、何かのキーで、一時停止が解除されると、記憶しております。 DOSコマンドに詳しい方の、ご教示を、お願いします。   類似の質問は、QNo.2577224(質問投稿日:06/12/03 06:22)にもあります。「Enargy Star画面の一時停止をする場合はESCキーを押せ」との回答がなされています。 しかし、私のパソコンで、「PCスペック概要」画面、「RAID設定状況」画面 等は、ESCキーを押しても一時停止しませんので、ここに質問する次第です。よろしくお願いします。

  • エキスプローラを起動するとシステムが停止してしまいます。

    Windows98SEを使用しています。以前から時々シャットダウンが正常に終了せず、電源OFFで終了していたのですが、 今朝からパソコンを起動し「マイコンピュータ」をダブルクリックしたり、「Windows Key」+「E」でエキスプローラを起動 しようとするとパソコンが停止してしまいます。画面が灰色になりマウスも動作しません。「ctrl」+「Alt」+「del」もきか ず電源ボタンを押して強制終了しなければなりません。 パソコン自体は正常に起動し例えば[スタート]>[プログラム]>[Excel]でエクセルを起動し、ファイルを開くから 適当なファイルを開くことは問題なく実行できます。 一度HDDをフォーマットして再インストールしようと思うのですが、現有のデータを移行したいのですが、エキスプロー ラが起動できないので大変苦しんでいます。 どなたか至急に教えてください。

  • HDDの停止の方法

    先日デスクトップのHDDを増設しましたが全く使用しないのとシャットダウンしても3回に1度くらいの割合で何故か再起動になってしまうので動作不安定?と思い一時停止するために増設したHDDの電源とデータの配線を取り外すとWindowsが立ち上がらなくなりました。ただ線を取り外すだけではだめなのですか?今は元通りに接続して普通に動作しています。 シャットダウンしたのに再起動になるときは必ず増設したHDDが動き出しまた電源が、はいってしまいます…。 それとにオンラインゲームのファイナルファンタジー11をプレイする際ウィルスバスターを起動させていると処理が重くて重くて…。 ゲームをプレイするときはウィルスバスターを停止させると問題なく動作しますが2007から2008にアップグレードしてからPCが少々おかしくなったような気がします。2007でFF11プレイする時はウィルスバスターは起動させていても問題なく動作していてシャットダウンしても再起動にはならなかったのですがどうなのでしょうか??? 説明不足かもしれませんがよろしくお願いします。