タグ

ブックマーク / yukun.info (4)

  • C++, boost::thread : スレッドの生成と実行

    C/C++でスレッドを扱う場合は、プラットフォームによって使用するライブラリが違います。 Windows なら Windows API の thread で、 UNIX や Linux 系ならば pthread ライブラリ等を使用します。プラットフォーム依存するコードは可搬性に難があり、解決策の1つとしてプリコンパイルで依存部分をプラットフォームに合わせたライブラリを選択してコンパイルする方法があります。 boost ライブラリの boost::thread は、上のような処理をラップして共通のインターフェイスとして実装されています。 boost/thread.hppの一部 #if defined(BOOST_THREAD_PLATFORM_WIN32) #include <boost/thread/win32/thread.hpp> #elif defined(BOOST_THREAD_

    C++, boost::thread : スレッドの生成と実行
  • プロセスの監視&自動復旧(簡易版)

    先日書いたシェルスクリプトでプロセスを監視し自動実行&自動killのシェルスクリプトは、その後結局使わず、さらに簡易的なコードで済ませました。 クエリーサーバのチェックスクリプト scheckp.sh #!/usr/bin/sh while true do isAliveSev=`ps -ef | grep "/server" | grep -v grep | wc -l` if [ $isAliveSev = 1 ]; then echo "o:server process" else echo "x:server process" /ret/sev/server & fi sleep 300 # モニター間隔(秒単位) done エンジンサーバのチェックスクリプト echeckp.sh #!/usr/bin/sh while true do isAliveEng=`ps -ef | g

    プロセスの監視&自動復旧(簡易版)
  • シェルスクリプトでプロセスを監視し自動実行&自動kill

    追記:プロセスの監視&自動復旧(簡易版) 今ある検索エンジンのデバッグを行っていますが、事情により短期間ですがクローズドな環境で運用されることになりました。構成は大きく分けてエンジンモジュールサーバ、クエリーモジュールサーバの二つのサーバからなっています。 デバッグはまだ途中なので、運用中にクエリーサーバorエンジンサーバのどちらか、もしくは両方が落ちる可能性もあります。落ちた場合は、手動で起動しなおすことになっていますが、せっかくなので自動化しよう。と、考えました。最初はcronデーモンを用いようと思いましたが、プロセスの監視(dead or alive)の仕方が分からず(調べきれず)、シェルスクリプトを用いることにしました(とは言うもののシェルスクリプトを使うのも初めてでした)。 クエリーサーバ&エンジンサーバのプロセスを一定の間隔で監視し、一方が何らかの原因で落ちた際は、再び二つのプ

    シェルスクリプトでプロセスを監視し自動実行&自動kill
  • MySQL: 既存テーブルの構造の変更 – ALTER TABLE文、CHANGE COLUMN句

    前回までにCREATE TABLE文を用いて以下のようなbook2テーブルを作成しました。 mysql> DESC book2; +-------------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+-------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | title | varchar(64) | YES | | NULL | | | author_name | varchar(32) | YES | | NULL | | | detai

    MySQL: 既存テーブルの構造の変更 – ALTER TABLE文、CHANGE COLUMN句
  • 1