blog.monophile.net

コンピュータに関するメモ。

著者

山本一彰(Takaaki Yamamoto)

東京工業大学において計算機科学と応用数学を学び、 情報科学芸術大学院大学[IAMAS]においてメディア表現を専攻し修了。 2015年にコンビネータ論理を基に計算完備な計算手法 "論理珠算"を開発し、 それを含む体系である"算道"を構成した。 その成果により、2016年に 第19回 文化庁メディア芸術祭 アート部門 新人賞 (文部科学大臣賞) を受賞。 現在はSRE(サイト信頼性エンジニア)として生計をたててている。

投稿

Mac OS X の Spindump を無効にする

概要

MacBookPro Late 2011 を使っているが、 メモリが圧迫されているので要らない機能をオフにする。 今回は Mac OS X のソフトウェアのデバッグ用の機能である Spindump をオフにしてみた。

Spindump は実行中のアプリケーションの低レイヤ情報を書き出すためのソフトウェアだが、 得られる情報は一般的な利用目的(ソフトウェア開発以外)では役に立たないことが多いと思う。

MacOS のデフォルト設定では Spindump は有効になっている。

状態の確認

初期状態(Spindump が有効の場合)は↓のコマンドでは何も出力されない。 値がfalseなら自動起動が有効になっていて、trueなら無効です。

自動起動が有効の場合

自動起動が無効の場合

Spindump を停止する

Spindump を開始する

Spindump の自動起動を無効にする

Spindump の自動起動を有効にする

(備考) System Integrity Protecton(SIP) を無効にする (El Capitan以降のみ)

El Capitan以降のMacOSでSystem Integrity Protecton(SIP)が有効になっている場合は、 無効にしないとspindumpの設定はできない、と何処かで見た気がしたが、ソースを失ってしまった。 自分の環境ではSIPが有効の場合でもspindumpの無効化の設定はできたが、SIPの無効化を一応書いておく。

  1. Macの電源を切る。
  2. Command+Rを押しながら、起動することでリカバリモードで起動する。
  3. Terminal.appを起動し “csrutil disable” と打つ。
  4. 再起動する。

(備考) launchctlのメモ

公式のドキュメントをみると load, unload などのコマンドは legacy な扱いになっている。

サービスの設定値は↓で確認できる。

$ launchctl print system/com.apple.spindump | head
com.apple.spindump = {
  active count = 0
  path = /System/Library/LaunchDaemons/com.apple.spindump.plist
  state = waiting

  program = /usr/sbin/spindump
  arguments = {
    /usr/sbin/spindump
  }

参考文献