ラベル MacOS の投稿を表示しています。 すべての投稿を表示
ラベル MacOS の投稿を表示しています。 すべての投稿を表示

2012年4月30日月曜日

Mac OSでstrace(あれ?存在しないぞ)

ちょっととあるプロセスが気になったのでstraceで調べようと思ったのですが、Macにstraceは存在しないみたいです。 mac portsにも無い。うーん。 調べていたら以下のコマンドがあったので忘れないようにメモ。
Mac OSでstraceコマンドに代わるコマンドたち
[2013/12/5 更新] straceに代わるコマンドが発行するシステムコールを表示するコマンドとして dtrussというコマンドがありました。
  • dtruss
  • sc_usage
  • fs_usage

詳細はmanコマンドで調べて欲しいですが、

sc_usageコマンドはシステムコールの統計情報を表示します。
fs_usageコマンドはファイルシステムに関するシステムコールを表示します。

sc_usageは統計情報なので、表示としてはtopコマンドのシステムコール版のようなイメージですね。 fs_usageは指定したプロセスがコールしているファイルシステム等に関するシステムコールがリアルタイムに 表示されるイメージです。私の場合、straceを使う場面は該当プロセスがどのファイルにアクセスしているとか、 どの通信をしているのかが知りたい時なので、そういう意味でstraceに近いのはfs_usageの方かもしれません。
sc_usage 使用例
 以下はTerminalのシステムコール統計を表示します。引数にプロセス名を指定します。また、管理者権限で実行する必要があるので、sudoコマンドで実行する必要があります。
MacBook-Pro:~ naoyuki$ sudo sc_usage Terminal
fc_usage 使用例
使い方はsc_usageと同じです。プロセス名を引数に指定します。
MacBook-Pro:~ naoyuki$ sudo fs_usage Terminal
その他コマンド
 私がLinuxを使用している時に該当プロセスが使用しているファイルを調べるコマンドに
lsofというコマンドがあるのですが、これはMacに標準で存在しました。
% lsof -p [pid]
のように使用します。このコマンドは管理者権限の必要は無いようなので、sudoの指定は必要無いです。

2012年4月14日土曜日

Macbook-Proが電源アダプタ接続時のみスリープしない件(解決済み)

ちょっと前からMacbookを電源アダプタに接続している場合のみスリープしなくなっちゃいました。 不思議なのはバッテリー駆動時ではスリープできるのです。 Macbookは基本スリープ運用しているので、電源アダプタ接続時のみとはいえスリープ出来ないのは結構いたいです。
スリープ出来ない時のMacbook-Proの様子
スリープ出来ない事象は以下のような感じでした。
  • 電源アダプタ接続時、Macbookのディスプレイを閉じてもスリープランプが点滅しない。
  • ディスプレイを開けると一瞬画面が表示された後に画面がブラックアウトする。
  • 画面がブラックアウトしても、一度バッテリー駆動にすると画面が映る。
  • 画面左上のアップルメニューからスリープしてもダメ。
  • 自動スリープもダメ。
  • バッテリー駆動時はスリープが可能。
  • OSはMac OS X バージョン 10.7.3
色々ネットで調べて、常駐アプリだとか、共有設定だとかスクリーンセーバーだとかPRAMクリアだとか試しましたが、 事象は改善せずです。
解決へ向けて
スリープ出来ない原因は多々あると思われますが、もしpmset -gコマンド実行結果が以下(赤字の部分)のようなら 私と同じ原因の可能性があり、解決できるかもしれません。
ターミナルを起動して以下コマンドを実行します。
MacBook-Pro:~ naoyuki$ pmset -g
Active Profiles:
Battery Power           -1
AC Power                -1*
Currently in use:
 womp           0
 halfdim        1
 sms            1
 panicrestart   15
 gpuswitch      2
 hibernatefile  /var/vm/sleepimage networkoversleep       0
 disksleep      10
 sleep          0 (imposed by 16) 
 hibernatemode  3
 ttyskeepawake  1
 displaysleep   15
 acwake         0
 lidwake        1
上記結果の「sleep 0 (imposed by 16)」のようにsleepの値が0になっていてその後ろに括弧でメッセージが 書かれています。
 sleep          0 (imposed by 16) 
の16という数字はPIDらしいです。このPIDのプロセスが原因でスリープ出来ないことを意味しているっぽい。 私の環境ではcupsのデーモンプロセスがこのPIDに該当しました。プロセスIDはターミナル上で ps -ef を実行するか アクティビティモニタで確認出来ます。
ここで、いきなりPID 16のプロセスをKILLするのは怖いのでCUPSのデーモンを調べてみました。 どうもCUPSの設定はWEBインタフェースで提供されているらしく、ブラウザから「http://localhost:631」とすれば 管理画面にアクセス出来ます。
ジョブが溜まっていたようでこのプリントジョブを削除してから再度 pmset -g コマンドを実行すると、
sleep 180
のようになり(私はこの時、電源接続時スリープ設定を3時間に設定)、imposedのメッセージが削除されていました。この状態でスリープを試してみたら見事 スリープが可能になっていました。いやー良かった良かった。終わり。

2012年3月5日月曜日

MacBook Proのメモリ増設(4G → 8G)

アマゾンで8Gメモリが3000円台で売られていたので、前々からどうかなぁ〜っと思ってました。 私のMacBook Pro(15inch 2010 mid)は、標準で4Gのメモリを積んでいますがLionにしたあたりからメモリが厳しい、と感じていたこともありダメ元?で買ってみました。ちなみに、この商品はアマゾンレビューで評価も良く一部認識しない等の問題が報告されていましたが、殆どは問題なく認識して使用出来ているレビューが大半でした。
結論を書いてしまいますが、私は無事8Gを認識し、問題なく使用する事が出来ました。
注)本レビューは全ての端末で該当メモリが使用できることを保証するものでは有りません。#一応書いておきます。
購入したメモリ(8G)
私は約2年前に購入したMacBook Pro 15-inch,Mid 2010を使用しているので、以下のメモリが丁度良いです。
  • DDR3 (Double Data Rate Small Outline Dual Inline Memory Module) 方式
  • 30 mm (1.18 インチ)
  • 2 GB または 4 GB
  • 204 ピン
  • PC3-8500 DDR3 1066 MHz タイプの RAM

  • シー・エフ・デー販売 メモリ ノートPC用 DDR3 SO-DIMM PC3-8500 CL7 256x8Mbit 4GB 2枚組 W3N1066Q-4G

    2011年モデル以降の場合、以下になると思います。
    詳細はこちらを参照下さい。
    メモリ交換の手順も載っています。
  • DDR3 (Double Data Rate Small Outline Dual Inline Memory Module) 方式
  • 67.6mm x 30mm (1.18 インチ)
  • 2 GB または 4 GB
  • 204 ピン
  • PC3-10600 DDR3 1333 MHz タイプの RAM

  • シー・エフ・デー販売 Elixir ノートPC用メモリ DDR3-1333(PC3-10600) SODIMM CL9 4GB 2枚セット W3N1333Q-4G
    メモリの交換
    Appleの公式手順はこちら
    特に解説する必要も無いと思いますが、私は少しハマった所があったので、その部分を書きます。 まずは裏面のネジ10本をはずします。ネジはかなり小さいので無くさないように注意して下さい。私の場合、長いネジ3本、短いネジ7本の構成でした。外すと以下のように丸見え状態に。
    矢印の部分がメモリのピンです。
    メモリの取り外し
    メモリの取り外しはメモリの両脇にあるピンを両脇側へ広げ、メモリが斜め上側へ向きを変えるのでそのままメモリを外します。 2枚目も同様に行います。
    メモリの取り付け
    新しいメモリを斜めに挿して、水平に倒してます。2枚目も同様に。
    私はここでやっちゃいました。2枚目のメモリの差し込みがあまい状態で水平に倒してしまったので、メモリの枠?に丁度ハマってしまい、今度は取るにも取れなくなってしまいました。なんとか取り外してやり直す事が出来ましたが、指す時は「斜め」の状態の時に十分に差し込みを確認してから水平に倒して下さい。
    起動、メモリの確認
    端末を起動し、「アップルメニュー」ー「このMacについて」で確認すると見事に8Gを認識していました。
    Apple Hardware Test
    8Gを認識していたので、もう十分なのですが、メモリを浅く挿してしまった失敗時の取り外しの時にやや強引に取り出してしまったので、一応ハードウェアテストを実行してみました。このApple Hardware Test(以下、AHT)ですが、マニュアルには「再起動してDボタンを押し続ける」と記載されているのですが、何度やっても普通に起動されてしまってAHTが始まりませんでした。
    Lionにアップグレードしたから?かわかりませんが、Mac購入時に付属されるDVDに格納されているらしく、該当のDVDを挿入した状態で、再起動しDボタンを押下することで起動出来ました。DVDは以下のです。
    起動後と診断後の画面。診断自体は5分程度で終わりました。
    まだ、1日しか使用していませんが、現状まったく問題はありません。やっぱり8Gは余裕があって良いです。Xcodeを起動中でも気にしないで他のアプリを起動出来ますし、明らかに全体的なパフォーマンスが向上した印象を感じます。

    2011年2月27日日曜日

    MACでのスクリーンショット取得

    いつも忘れてしまうので、メモっておきます。

    ショートカットキーにてキャプチャ

    キャプチャの種類キーボードショートカット
    画面全体をキャプチャshift+command+3
    マウスで選択部分をキャプチャshift+command+4

    カーソルが照準(?)アイコンに変わるので、キャプチャ範囲をドラッグして指定します。
    ウィンドウをキャプチャshift+command+4の後にspace

    カーソルが一旦照準(?)アイコンに変わるので、その後にspaceキーを押すとカメラアイコンに変わります。キャプチャしたいウィンドウを選択します。

    ※いずれも、キャンセルはESCキーです。

    アプリケーションにてキャプチャ

    Dockにて、
    アプリケーション → ユーティリティ → グラブ.app というソフトがあります。

    2011年1月30日日曜日

    TextWranglerでバックスラッシュ(\)の入力が出来ない。

    MAC環境に移行してから、テキスト編集は基本的にターミナルでvimかGUIではEmacsを利用していました。バックスラッシュの入力は今まで意識していませんでしたが(¥ではなく\と表示されるな〜くらいは認識してました)、TextWranglerを使っての編集で、エスケープとしてのバックスラッシュを入力したつもりでもそのまま文字列として認識されてしまい、あれ?あれれ?という感じです。

    TextWranglerで普通のCコードを書いてみます。

    printf("test1¥ntest2¥n");

    これを実行すると、

    line1¥nline2¥n

    となっちゃいます。

    今まではターミナルでvimを使っていたので気づかなかったのですが、vimでバックスラッシュを入力すると '\' となってます。TextWranglerの場合は '¥' となっちゃいます。
    実際に文字コードがどうなっているのかはさておき、見た目的に'\'となっていないとエスケープとして認識してくれないみたいですね。

    で、問題はどうやって '\' を入力するかですが、

    option + ¥

    で '\' の入力が出来ました。
    実はこのブログ上でも\を入力するためには同様の操作が必要だったので、TextWranglerに限った話ではなくMAC的には常識?な話だったりして。

    追伸
    よくよく考えてみたら、キーバインドの設定で変更が可能ですね。
    私はGoogle日本語入力システムを使用していますが、ことえりでも一緒だと思います。

    これで普通に\と入力できます。
    ん? 今度は、¥と入力するにはどうしたら?? option + ¥ かと思ったら違いました。
    option + y で ¥ と入力できます。うーん、なんかややこしいな。