PC Tips

ここでは、「PC Tips」 に関する記事を紹介しています。

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
Ubuntu などの Linux マシンの端末で作業していると,たまに固まることがある.

そんな時の対処法を調べてみたので,まとめてみる.


GNU/Linuxがフリーズした時の対処
http://web.archive.org/web/20061124094022/http://home.catv.ne.jp/pp/ginoue/memo/linux-freeze.html


「ストレージ上のファイルをできるだけ守る」ことを念頭に,複数の対処法を順序よく解説してくださっている(2000年の記事).
普段何となくやっていることだけど,深く考えてやっていたわけではないので反省.
それから,Alt + SysRq + s 等は初めて知った.感謝.


自分用に,要点まとめ:

まず試すこと:
  • Ctrl + q (Ctrl+s で一時停止しているのを解除)
  • Ctrl + d (標準入力待ちを止める)
  • Ctrl + cCtrl + \Ctrl + z (プロセスの停止に手を染め始めた)


シェルアクセスを確保するために:
  • Ctrl + Alt + f2 など仮想端末コンソールを呼ぶ
  • (Xがフリーズしていなければ)kterm等を起動
  • ネットワーク越しに telnetssh


シェルアクセスが確保できた場合:
 kill 対象の選定:
  • pspstreetop などで見極める.
 kill する順番の目安:
  • アプリ,ウィンドウマネージャ,セッションマネージャ,Xサーバの順が妥当では,とのこと.
 kill の仕方:
  • kill -HUPkill -INTkill -QUITkill -KILL (-KILL だけは終了処理なしの即死.ゾンビ化の恐れあり)

シェルアクセスできない場合:
  • Ctrl + Alt + BS  (設定してあれば)Xサーバを頃そうとしてみる操作.
  • Ctrl + Alt + Del  カーネルのソフトウェアリセット
  • ソフトウェアリセットが効かないとき:
    •  Alt + SysRq + sAlt + SysRq + uAlt + SysRq + o の順に押す.Alt + SysRq + s でファイルがSyncされる.
    •  Alt + SysRq + b  Syncせずにリブートだそう.
  • ハードウェアリセット:
    •  リセットボタン
    •  電源ボタン長押し
    •  電源コードを抜く(!)



UbuntuTips/Others/MagicSysRq
http://wiki.ubuntulinux.jp/UbuntuTips/Others/MagicSysRq

特に,SysRqの細かい説明も載っていてうれしかった.

フリーズしたUbuntuを安全に再起動するには
  • Alt + PrintScreen + R + S + E + I + U + B

フリーズしたUbuntuを安全に終了するには
  • Alt + PrintScreen + R + S + E + I + U + O

SysRqで利用できるキーの概要
リンク先参照





スポンサーサイト
いつの間にか

「AddClipsIDが設定されていないか、他の設定に間違いがあります」

というメッセージが出るようになっていた。失礼しました。


ぐぐると
http://www.addclips.org/faq.htm#faq3
に対処方法が。

感謝。
概要:
  • Yellow Dog Linuxなマシンに文献管理ソフトMendeleyを入れようとした.
  • libstdc++.so.6のバージョンが古くてそのままでは入らない(GLIBCXX_3.4.9 が必要).
  • そこでLibreOfficeのrpmから新しいlibstdc++.so.6を抽出し,適当なディレクトリに設置.
  • Mendeleyのインストール成功.

Mendeley(http://www.mendeley.com/)は文献管理ツールであり,
  • 各クライアントに専用ソフトを入れる
  • オンライン上で文献管理
  • 複数マシンで共有可能
  • 文献を題名,著者名,雑誌名等で分類可能
等が出来るもの.詳細は勉強中につきこれから調べる.



Mendeleyの展開からlibstdc++.so.6が古いことの確認まで.

さて,Yellow Dog Linuxのマシンでこれを使おうと,
http://www.mendeley.com/download-mendeley-desktop/?_section=footer
から

mendeleydesktop-1.3.1-linux-x86_64.tar.bz2

をダウンロードし,

tar xvf mendeleydesktop-1.3.1-linux-x86_64.tar.bz2

で展開,

cd mendeleydesktop-1.3.1-linux-x86_64

で展開先ディレクトリに入って,

cat INSTALL

で,インストールのしかたを調べる.すると

./bin/mendeleydesktop

を実行しろ,とのことなので実行した.
が,/usr/lib64/libstdc++.so.6 から GLIBCXX_3.4.9 が見付からないという趣旨のエラーが発生.
(エラーメッセージを取っておくのを忘れた...)

そこで,GLIBCXXのバージョンを確認をしてみると

strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_FORCE_NEW

となっていて,たしかに3.4.9はない.




LibreOfficeのrpmゲットから,libstdc++.so.6の抽出まで.

てきとうにぐぐると,LibreOfficeから新しいlibstdc++.so.6 をゲットする,という手法を取っている方々を発見(ただしCentOS上でfirefoxのインストールがらみでの事例).


まず,こちらのYDLマシンで
「アプリケーション -> ソフトウェアの追加と削除」
「ブラウズ(B)タブ -> アプリケーション -> Office/生産性 -> オプションパッケージ(O)」
からLibreOfficeを探してみたが見付からない(OpenOffice 2.3.0ならある)

無理矢理インストールするのも気がひけるので,rpmを拾って中から libstdc++.so.6 を取り出すことにした.

LibreOffice の公式(http://www.libreoffice.org/)からrpm をダウンロード.
2012/01/18時点では
http://ftp.jaist.ac.jp/pub/tdf/libreoffice/stable/3.4.5/rpm/x86_64/LibO_3.4.5_Linux_x86-64_install-rpm_en-US.tar.gz
があった.

展開する:

tar xvf LibO_3.4.5_Linux_x86-64_install-rpm_en-US.tar.gz

すると,./LibO_3.4.5rc2_Linux_x86-64_install-rpm_en-US/RPMS/ にrpmが大量に生成される.ひとつひとつ展開していたら日が暮れる.


そこで一行野郎で楽をすることにした:

for fname in `ls`; do echo "****" $fname; rpm -qlp $fname; done | less

lessの検索コマンド / で libstdc++ を探すと

libreoffice3.4-ure-3.4.5-502.x86_64.rpm

内に発見.次に

rpm2cpio libreoffice3.4-ure-3.4.5-502.x86_64.rpm | cpio -id

でrpmの展開のみ実行.めでたくlibstdc++.so.6を抽出.

それを /usr/lib64に設置(念のため,古いlibstdc++.so.6はリネームして保存)して終了.

strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_FORCE_NEW




Mendeleyのインストール.

あとは道なりで行けた.





参考にしたサイト:
先人に感謝。
先輩にVirtualBoxの存在を教えてもらってたので,使ってみた.

環境:
マシン:Express5800 110/Ge
ホストOS:Windows XP x64
VM:VirtualBox 4.0.8 r71778
ゲストOS:Ubuntu 11.04 (32bit)

本家からISOを落としてきて,手順どおりインスコすればOK.
スナップショット取れるし,「設定→システム→プロセッサ(P)」でCPUの個数を増やせば,ゲストOSからもちゃんと見える.
ゲストOSでCPU使いまくる処理をさせて,ホストOS側のタスクマネージャを見たら,複数コアの使用率が上がっていて実にうれしい(火暴)


【変な点】
  • JP106キーボードが設定画面に出てこない件.
    現状では「Generic 105-key(Intl)PC」を選択している.
    .
  • ゲストOSでCapsLock Ctrlの入れ替えで,「CtrlLock」となる件
    なぜかCapsLockキーを押すたびに,Ctrlがかかりっぱなしになり難儀した.
    GUIで設定しても.xmodmaprcを書いてもダメ.
    つかれたのでホストOS(Windows) 側で入れ替えをして事なきを得た.


さっきの記事で参考にさせてもらったブログの別記事でありがたいものがあった。

突然のTwitter砲にもなんとか耐えたさくらVPSに感謝する
blog.riywo.com/2011/02/07/162154

記事がよくまとまっているし、アクセスログ解析の便利技に感銘を受けました。

awk | sort | uniq -c
cut | sort | uniq -c

の組み合わせ方でIP毎のアクセス数の集計が手軽にできる。これいいな。

こないだオープンソースカンファレンスで初めて知った「USP友の会」でシェルスクリプトの便利さに感銘をうけたところで、何かタイムリーに感じた。

データ解析に使おう。感謝。



HP Mini 1000 のUbuntu 9.04 を 9.10 → 10.04 とアップグレードしたあたりから、微妙に調子悪い。

なんか、やたらフリーズする。

普通に emacs -nw でファイルを編集しているときにハングアップしたり、朝起きて画面のロックを解除しようとしたときには既に固まっていたり。

固まったときの様子:
  • キーボード及びタッチパネルは無反応。
  • 電源ボタンは反応する。押したときの反応。
    • 画面ロックされてないとき→シャットダウンのメニューは出る。操作はできないが、60秒後にシャットダウン。
    • 画面ロック時→パスワード入力画面が出るがフリーズ。
カーネルが死んでるわけではないみたいだが、何ともコマル。

電源長押しで落とすのは心臓に悪い気がするので、画面ロックされないよう、スクリーンセーバ関係を開いて設定を変えといた。

/var/log/syslog を見てみたらこんな感じだった:

Nov 21 02:25:30 ubtekitobibouroku wpa_supplicant[836]: WPA: Group rekeying completed with **:**:**:**:**:** [GTK=CCMP]
Nov 21 02:25:30 ubtekitobibouroku NetworkManager: <info>  (eth1): supplicant connection state:  completed -> group handshake
Nov 21 02:25:30 ubtekitobibouroku NetworkManager: <info>  (eth1): supplicant connection state:  group handshake -> completed
Nov 21 02:48:37 ubtekitobibouroku kernel: [ 2382.128048] CE: hpet increasing min_delta_ns to 15000 nsec
Nov 21 03:10:42 ubtekitobibouroku kernel: [ 3706.904518] psmouse.c: TouchPad at isa0060/serio4/input0 lost sync at byte 1
Nov 21 03:10:42 ubtekitobibouroku kernel: [ 3706.907079] psmouse.c: TouchPad at isa0060/serio4/input0 lost sync at byte 1
Nov 21 03:10:42 ubtekitobibouroku kernel: [ 3706.909516] psmouse.c: TouchPad at isa0060/serio4/input0 lost sync at byte 1
Nov 21 03:10:42 ubtekitobibouroku kernel: [ 3706.912087] psmouse.c: TouchPad at isa0060/serio4/input0 lost sync at byte 1
Nov 21 03:10:42 ubtekitobibouroku kernel: [ 3706.914488] psmouse.c: TouchPad at isa0060/serio4/input0 lost sync at byte 1
Nov 21 03:10:42 ubtekitobibouroku kernel: [ 3706.914500] psmouse.c: issuing reconnect request
Nov 21 03:10:42 ubtekitobibouroku kernel: [ 3706.948078] Unable to query Synaptics hardware.
Nov 21 03:10:42 ubtekitobibouroku kernel: [ 3707.372074] ACPI Exception: AE_TIME, Returned by Handler for [EmbeddedControl] (20090903/evregion-424)
Nov 21 03:10:42 ubtekitobibouroku kernel: [ 3707.372107] ACPI Error (psparse-0537): Method parse/execution failed [\_SB_.PCI0.SBRG.BAT1._BST] (Node f7017840), AE_TIME
Nov 21 03:10:42 ubtekitobibouroku kernel: [ 3707.372193] ACPI Exception: AE_TIME, Evaluating _BST (20090903/battery-393)
Nov 21 03:10:43 ubtekitobibouroku kernel: [ 3707.872043] ACPI: EC: input buffer is not empty, aborting transaction
Nov 21 03:10:43 ubtekitobibouroku kernel: [ 3707.872060] ACPI Exception: AE_TIME, Returned by Handler for [EmbeddedControl] (20090903/evregion-424)
Nov 21 03:10:43 ubtekitobibouroku kernel: [ 3707.872088] ACPI Error (psparse-0537): Method parse/execution failed [\_SB_.PCI0.SBRG.BAT1._BST] (Node f7017840), AE_TIME
Nov 21 03:10:43 ubtekitobibouroku kernel: [ 3707.872163] ACPI Exception: AE_TIME, Evaluating _BST (20090903/battery-393)
Nov 21 03:10:43 ubtekitobibouroku kernel: [ 3708.375418] ACPI: EC: input buffer is not empty, aborting transaction

以下、これの繰り返し。何時間も。どうやら寝ている間に固まったらしく、起きたときには操作を受け付けない状態だった。



そういえば、Alt+Ctrl+F1 はまだ試していないな。次固まったら試そう。

20101129追記:
Alt+Ctrl+F1 も効かなかった。

「hp mini 1000 ハングアップ」とかでググると,無線 LAN 関係のフリーズやサスペンドがらみのフリーズなどが出てくるが,自分のケースがどれに当てはまるのかはまぁゆっくり考えよう…



[Ubuntu 10.04 フリーズ]の続きを読む
Linux を使っているときに、原稿等のテキストファイルをバックアップしたくなった。
あんまり面倒なのはいやだ。なので次のようにした:

find ~/ \( -name \*.tex -o -name \*.bib -o -name \*.sty -o -name \*.c -o -name \*.h -o -name \*.cpp -o -name \*.txt -o -name \*.gp -o -name ChangeLog \) | lha a tekito_backup.lzh

使っている事柄は、
  • find コマンドでバックアップしたい拡張子を指定(複数条件は -o でいけるらしい)
  • パイプで lha に渡すと、ディレクトリ構造込みで圧縮してくれる
これくらい。
あれ? lha は、 xargs かまさなくてもいけたのか。
そういえば「lha はもう使わないでくだしあ」なのだそうだが、コマル。

tar でやってみたら

find ~/ \( -name \*.tex -o -name \*.bib -o -name \*.sty -o -name \*.c -o -name \*.h -o -name \*.cpp -o -name \*.txt -o -name \*.gp -o -name ChangeLog \) |xargs  tar czvf tekito_backup.tar.gz

明らかにファイルの個数が少なかった。LHA で希望する処理ができているので、満足することにした。

ホームディレクトリに、gmp 4.3.1 とか gmp5.0.1 とかいろいろインストールして回っていたときのこと。
なんか、めんどくさくなった。

やってる作業は
tar.gzで拾ったファイルを解凍し、そこのディレクトリに入って、毎回

./configure --prefix=$HOME/sw/[ソフト名]
make
make check
make install

ほとんど同じ作業だが、インストール先のディレクトリ名だけ変えている。
スクリプト化してみた:(mymake.sh)

#!/bin/bash
make clean
./configure --prefix=$HOME/sw`pwd | sed -e 's/.*\(\/.*\).*/\1/'` #インストールディレクトリの名前を、現在いるディレクトリの名前から生成。~/sw/[dir名]/ にインストールされる。
make
make check
make install

これなら解凍したディレクトリに入って、これを実行すればあとは寝ていておk。


ついでに、「tar.gzを解凍 → 解凍ディレクトリに入る → mymake.sh実行」
を繰り返すスクリプトンも作ってみた(my_tar.gz.install.sh):

#!/bin/bash
ls *.tar.gz | while read filename ;do
dirname=`echo $filename| sed -e 's/\(.*\)\.tar.gz/\1/'`
echo $filename
echo $dirname
tar xvf $filename
cd ./$dirname
~/scripts/mymake.sh
cd ../
done

*.tar.gz達が置かれているディレクトリでこれを実行すれば、各ソフトに対して mymake.sh を実行してくれる。よって、もっと長く寝ていておk


自動化万歳。
よく

1 : #include
2 : /* main.c */
3 : int main()
4 : {
5 : printf("Hello World!\n");
6 : return 0;
7 : }

といった行番号つきのソースを自分の環境で試したい時がある。

エディタに張り付けるときは、先頭の行番号を除去したい。

手作業は面倒くさいので、awkさんにお願いすることにした:

$ cat main.c | awk '{print substr($0,8)}'

(先頭7文字目までは無視して)8文字目以降だけ標準出力に出してくれる。あとはリダイレクトで受けとればOK。



次を参考にしました。感謝。
自分が何書いたか忘れていることに気づいた。
はてなブックマークにでもつけておこうかと思った。

ブラウザに、右クリックで「はてなブックマークに追加」を追加してもいいが、あちこちのブラウザに登録するのは面倒。

しかしブログ自体にボタンをつければどこでも使えるので安心的。

ぐぐると
FC2ブログにはてなブックマーク登録ボタンを設置
AddClipsでブックマーク追加ボタンの設置
という記事が見つかった。感謝。

面白そうなので、AddClipつけてみた:
ソーシャルブックマーク追加ボタン作成サイト:AddClips
あらかじめ はてブ か LiveDoor のアカウントをとっておく必要はある。
が、以降の登録作業は簡単。道なり。

あまり気にしなくても自分用にメモが残せるようになった。快適。

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。