Linuxコマンド top
現在のシステム状況を表示する
デフォルトは5秒間隔で更新
CPU を多く使用しているプロセスから順に表示
psコマンドとの違い
psコマンドは、 そのコマンドを実行した瞬間のプロセスの状態を出力するだけに対して、topコマンドは実行を中止するまでと状況を表示し続ける
例
top -d 10
Linuxコマンド nice
プライオリティを変更して実行する
同時に複数のプロセスを実行する際、どのプロセスを優先的に実行するかを指定できる。
値が低いほどスケジューリングにおける優先度が高くなる。
プライオリティは -20 から 20 までの値を取る。
負の値のプライオリティを与えることできるのはrootユーザのみ。
-20 が最も優先順位が高く高速に動く。
逆に、重要でないプロセスの優先度を低く設定しておけば、他のプロセスが実行される機会が増える。
引数なしだと、設定された内容表示
-n 値を指定しないと優先度 10で実行される。
例
nice -n 5 command
関連
renice
すでに実行しているプロセスの優先度を変更する
なんでniceなんだろう…。
Linuxコマンド kill
プロセスおよびジョブを強制終了する
終了の方法はシグナルによって決まる。
例
kill -9 1234 # プロセスID1234番を強制終了
というわけでシグナルについて!
シグナル
プロセス間で連絡を取り合うための仕組み
プログラム自身の動作によって発生する同期シグナル、外的な要因で発生する非同期シグナルの2種類が存在する。
シグナル発生タイミング
- ユーザがキーボードで、割り込みキーを入力
- killコマンドを実行
- 参照出来ないメモリを参照
- 不正な演算を実施
- 明示的にシグナルを送信する処理を実行
シグナルを受け取ったプロセスは?
特に指定しなければデフォルトの応答が動作する
シグナルハンドラ
プロセスは特定のシグナルを受け取った場合に呼び出す関数を用意できる
プロセスは、SIGKILL/SIGSTOP 以外のすべてのシグナルを無視するよう設定できる
SIGUSR1 と SIGUSR2 は自由に使える
シグナル一覧
下記のコマンドで確認できる
kill -l
一部抜粋一覧
番号 | シグナル | 意味 | デフォルト通知内容 |
---|---|---|---|
1 | SIGHUP | クローズされた端末上で動いていたプロセスに送られる | 再起動 |
2 | SIGINT | キーボードからの割り込み、Ctrl+Cが押された | 割り込み |
3 | SIGQUIT | キーボードからの割り込み、Ctrl+\が押された | 終了+コアダンプ |
8 | SIGFPE | 浮動小数点演算のエラーおよび整数の0による割算の検出 | 終了+コアダンプ |
9 | SIGKILL | プロセスを強制終了する | 強制終了 |
11 | SIGSEGV | メモリアクセスについて違反があった | 終了+コアダンプ |
14 | SIGALRM | アラームタイマーの時間満了、もしくはalarm(2)からのタイマーシグナル | 終了 |
15 | SIGTERM | ソフトウェア終了シグナル | 終了 |
17 | SIGCHLD | 子プロセスが終了したとき親プロセスに送られる | 無視 |
18 | SIGCONT | バックグラウンドに回ったプロセスを再開する | 再開 |
19 | SIGSTOP | 実行を一時停止。SIGCONTシグナルによって再開 | 中断 |
20 | SIGTSTP | キーボードからの割り込み、Ctrl+Zが押された。 | サスペンド |
コアダンプ
ディスク上に生成される終了時のプロセスのメモリイメージ
プロセス管理まわりを続けて書く!
ActiveRecordとは
railsをいろいろやっていて出てきた言葉。
気になったので調べた。
Zend Frameworkがほったらかしだ…。
ActiveRecord
DBアクセスに関するデザインパターンを実装したライブラリ
データベースのテーブルをクラスとしてビジネスロジックを持たせ、テーブルの1行1行をインスタンスとして扱う考え方のデザインパターン
O/Rマッピング
Object-relational mapping オブジェクト関係マッピング
オブジェクト指向言語におけるオブジェクトと、リレーショナルデータベースにおけるレコードとを対照させること。
これにより、リレーショナルデータベースのレコードがオブジェクトとして直感的に扱えるようになり、リレーショナルデータベースにアクセスするプログラムを記述する処理を容易にできる。
オブジェクトへのデータ取得などの処理を透過的に行えるようになるので、煩雑になりがちなデータベースに関する処理の記述がスマートになり、また柔軟なアプリケーションの構築が可能となる。
O/Rマッパー
オブジェクトとリレーショナルデータベースをつなぐもの
主な、O/Rマッパーとして、
Java言語向けのHibernate、Ruby言語向けのActiveRecordなどがある。
vimカラーをSolarizedに変更する
カラーがきつくて、見づらいなぁと思っていたので、変更してみる。
見た結果、Solarizedというのがよさげだったので、それにする。
ダウンロード
下記サイトからダウンロード
http://ethanschoonover.com/solarized/vim-colors-solarized
ファイル配置
解凍して、下記のフォルダに移動
autoload、 colors、docが対象
/usr/share/vim/vim72
設定ファイル編集
追記する
# vi /etc/vimrc syntax enable set background=dark let g:solarized_termcolors=256 colorscheme solarized
256色対応
puttyの設定を変更する。
接続>データ>端末の詳細>端末タイプを表す文字列
ここのxtermを下記に変更
xterm-256color
無事表示された!イイネ!
ftpサーバ設定
そういえばやってなかった気がするので、設定する。
インストール
# yum -y install vsftpd
設定ファイル編集
下記を編集する。
# vi /etc/vsftpd/vsftpd.conf
匿名ユーザのログイン禁止
anonymous_enable=NO
ログの設定をする
xferlog_file=/var/log/vsftpd.log xferlog_std_format=NO
タイムアウト時間を設定
idle_session_timeout=600 data_connection_timeout=60
アスキーモードでアップロード/ダウンロードを許可する
ascii_upload_enable=YES ascii_download_enable=YES
アスキーモードとは
テキストファイル転送用モードのこと。
アスキーモードでファイルをアップロードすると、異なる改行コードを自動的に修正してくれる。
ホームディレクトリより上層へのアクセスを禁止(デフォルト)
chroot_local_user=YES
ホームディレクトリ上部のアクセス禁止ユーザーリストの有効化とファイル名
chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list
ディレクトリ削除を許可
ls_recurse_enable=YES
タイムスタンプを日本時間に合わせる
use_localtime=YES
パッシブモードの有効と設定
pasv_promiscuous=YES pasv_min_port=60000 pasv_max_port=60030
パッシブモードとは
インターネット上のFTPサーバが、ファイアウォールの設定で、20番ポートからのコネクション確立を許可するようなっていない場合でもデータコネクションが確立できるようにするための方法。
この場合、クライアントはPORTコマンドの代わりにPASVコマンドを送信する。
ユーザーリスト作成
それぞれ、上部ディレクトリ禁止ユーザーリスト、ftpアクセス禁止リスト
# vi /etc/vsftpd/chroot_list # vi /etc/vsftpd/user_list
接続できるクライアントを制限する
許可設定
プライベートアドレスとサーバ自身を指定
# vi /etc/hosts.allow vsftpd : 192.168.XXX.XXX 127.0.0.1
拒否設定
上記以外すべて拒否するようにする
# vi /etc/hosts.deny vsftpd : ALL
vsFTPDの起動と設定
起動時にvsFTPDをを起動するようにも設定する。
# /etc/rc.d/init.d/vsftpd start # chkconfig vsftpd on
設定を確認
# chkconfig --list vsftpd vsftpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
アクセスしてみる
というわけで無事アクセス完了!
ユーザーのパスワードを忘れたか指定してなかったので、passwdで設定したけど…。
メタ言語less
とても便利なので、入れておこうと思います。
cssと異なり、
入れ子にできる、変数が使え、数値計算ができ、簡単な関数のようなものが作成できる。
すっきりかける
@color: #4D926F; #header { color: @color; h2 { color: @color; } }
node.jsインストール
サイトから安定版をダウンロード。
$ wget http://nodejs.org/dist/v0.6.14/node-v0.6.14.tar.gz $ tar zxvf node-v0.6.14.tar.gz $ cd node-v0.6.14 $ ./configure
ここでエラー。いろいろ不足しているのでインストール
# yum install gcc-c++ # yum install make
そしてインストールの続き
$ make # make install $ node -v # v0.6.14 $ which node # /user/local/bin/node
curlをインストール
# curl http://npmjs.org/install.sh | sh
lessをインストール
# npm install -g less $ lessc styles.less > styles.css
こんな感じで使える。
のちのち使う予定~。