プロセス監視
せっかく書いたスクリプトだけど要らなくなったので供養です。
事情としては、あるプロセスがちょっとその動作はどうなの?っていうメモリの消費の仕方をしていて、それを記録するために数秒置きにそのプロセスのメモリ使用量を記録したかった、ってのがありました。んが、どうもそのプロセスはIntel版でのみ起動してくるものらしくApple Silicon版には存在しないらしいことがわかり、Intel Mac環境が急速になくなっている状況下では意味がない取り組みということが判明しまして、なのでスクリプトをゴミ箱に捨てる前に供養しようかなというわけです。
以下のスクリプトが使用しているモジュールのうち、psutilは別途入れないとダメみたいです。topコマンドで取得したリストの何列目の値が監視したいものかは、もしかしたら環境によって違うかもしれません。スクリプト内の変数memColNumが適切な値になるように要調整ですw
import psutil import subprocess from subprocess import PIPE import re import datetime import signal import time import os #デスクトップのLogフォルダに記録を保存する logFilePath = os.path.join( os.environ['HOME'] , "Desktop" , "Log" ) #監視するプロスセス名を記入(スペースはバックスラッシュでエスケープする) #topコマンドで捕捉されるプロセス名じゃないとダメ。 #ちなみにAdobe Crash Processorが入っているのはスペースの入ったプロセス名を #扱うための例として使っているだけで、このアプリにメモリ使用量に関する罪はありません。 processName = "Adobe\ Crash\ Proc" cnt = 0 outPutInfo = [] memColNum = len( processName.split() ) + 7 def check(arg1, arg2): global logFilePath, cnt, outPutInfo , memColNum cmd = "top -l 1 | grep " + processName + "| awk '{print $" + str(memColNum) + "}'" proc = subprocess.run( cmd , shell=True, stdout=PIPE, stderr=PIPE, text=True ) try: if proc.returncode == 0: infoArr = ['',''] privateMem = proc.stdout[:-1] if privateMem[-1] == "K": privateMem = str( float( privateMem[:-1] ) / 1048576 ) if privateMem[-1] == "M": privateMem = str( float( privateMem[:-1] ) / 1024 ) elif privateMem[-1] == "G": privateMem = privateMem[:-1] dt_now = datetime.datetime.now().strftime('%H:%M:%S') infoArr = [ dt_now , privateMem ] outPutInfo.append( infoArr ) cnt += 1 print( cnt , infoArr ) if cnt > 720: outStr = "" tmpArr = dt_now.split(":") fileName = '-'.join( tmpArr ) for i in range( len( outPutInfo ) ): outStr += ( outPutInfo[i][0] + ',' + outPutInfo[i][1] + '\n') with open( os.path.join( logFilePath, fileName + '.txt' ), mode='w' ) as f: f.write( outStr ) cnt = 0 outPutInfo = [] except: print(processName + " is Dead") def main(): signal.signal(signal.SIGALRM, check) signal.setitimer(signal.ITIMER_REAL, 0.1, 5.0) while True: time.sleep(1) if __name__ == '__main__': main()
汎用フォーマットが汎用で無くなる日
macOS SonomaでPostScriptとESPのサポートが終了したということです。Adobeが開発した同フォーマットは、macOSでは特別なことなく見て、印刷することができたのだけど、それのサポートがmacOS Sonomaで完全に終了したそうです。実用上、直接プリントアウトする用途なんかなかったのだけど、MontereyあたりからQuickLookやプレビュー.app から見ることができなくなっていたというのは、古い素材がepsで保持されているものも多いため、なかなかに不便を感じておりました。
理由としてはepsファイルがもたらすセキュリティのリスクへの対応ってことになるようです。Windows ではシステムレベルでのサポートはなかったものの、Officeでepsのサポートが終了していますね。(EPS 画像のサポートが Office で無効になっている [Microsoft サポート])
そんな風に過去普通に扱えたのにある時からそれが叶わなくなるってフォーマットはコンピュータを使い続ける以上今後も発生するのだろうし、その度に別フォーマットに変換すればいいのだろうけど、面倒なことです。
なを、VenturaでEPSファイルをQuickLookするための方法はググると出てきて、大きな手間なく実現することができる模様。Sonomaでどうかは不明。
epsファイルを何かに変換する先としてはsvgあたりが適当でしょか? IllustratorとかAffinity Designerとかで開いて保存し直すでもいいけど、個人的に必要なepsファイルはシンプルなデータであることが多いので、何か一括でできると嬉しいっすね。やり方の一つの方法としては、ps2pdfコマンドでPDF変換(ここまででいいとは思うけど)した後、brew install pdf2svgして入れたpdf2svgを使ってSVG変換、とかかね。ps2pdf -dEPSCrop input output と pdf2svg input output
二本足ねずみ の無料イラスト素材[Linustock]
Kindle for Macがアップデート
迷惑メールフォルダの中にAmazonからのお知らせが入ってました。
そういえばWindows版が8年ぶりにアップデートなんて記事を前に見ました(「Kindle for PC」が8年ぶりのメジャーアップデート、v2.0.0がリリース[窓の杜])
メールからのリンクをクリックするのはセキュリティ上よろしくないので、メールによるとMac App Storeで配布されているらしいからそこで検索かけると、確かにありました。すかさずダウンロードです。
で起動。
ダウンロード済みのところは空っぽでした。以前はAmazonから0円で購入した形で入手したKindle for Macを使っていたのですけど、そこの情報は引き継がれないみたいです。アプリケーションフォルダにはAmazon Kindle.appとKindle.appの二つが存在していて、つまりは別アプリってことですね。
iPadOSで動作するKindleと同じような見た目になってます(Windows版の見た目はそうじゃないようですね)。「コレクション」ってのがこのアップデートで追加されたようで、iOS/iPadOSでは機能としては以前からあったけど、それがMac版(PC版)にも降りてきたってのが今回のアップデートの大きなところなのでしょう。
コレクションは全然使ってなかったですからねぇ。活用せねば。
nsmb.conf にはマニュアルがあったんすね。
man nsmb.conf でマニュアルを見ることができ、いろいろパラメータを確認することができました。よく、MacのSMB接続の高速化でSMB著名をオフにするためのsigning_requiredはマニュアルによるとデフォルト値がnoみたいなんだけど、?、って感じです。まあともあれ、これを頼りにネットを漁ると少し情報が出てきます。
macOSで多くのファイルが含まれるディレクトリを表示しようとするとハングするという問題は、macOS Catalina 10.15.4で修正されたそうです。そして、そこの部分に関係あるパラメータがmax_dirs_cachedとmax_cached_per_dirだそうです。(SMB Tips and FAQs[quantum.com] Why Does macOS Catalina Hang When Trying to View Directories With Many Files? より)
有線・無線両方でネットワークに繋がっているなら、mc_prefer_wired=yes を設定するのが良さそうです。まあ昨今は無線の方が速いって環境もあるでしょうが、有線の方が速くて安定しているなら有線優先ってことで。
dir_cache_async_cnt=0にしているページを見るのだけど、これは最大非同期クエリ数ってのの制限を設けないってことかな?
dir_cache_offって値を設定しているページもあるけど、マニュアルには書かれてません。これは上記 Catalinaで解消されたというバグが関係しているのかな?
とかなんとか、意味がいろいろ分かってませんが、調整の幅はあると。
ちなみにVenturaのデフォルト値ではマニュアルによれば、最小認証レベルがNTLMv2で、NTFSストリームをサーバーがサポートしているなら使用して(だからドットファイルが出来上がらない)、クライアントの著名はオフだそうです。
MacでのSMB接続の速度問題
macOSのSMBが遅いと評判なのだけど、そういえば職場環境であまり遅いと思ったことはないなぁって思っております。
Windowsではないファイルサーバーが稼働しているのだけど、そのうち2台に対してベンチマークソフトを走らせたところ、シーケンシャルなリード・ライトならこんな速度が出てます。
見ての通り10Gbpsで繋がってます。悪くない数字じゃないかと(裏で他のスタッフの方々がアクセスしているストレージだし)。
数千ファイル入ったフォルダもほぼ待たされることなくFinderから開くことができます。ただ、このファイルサーバーに対してのファイルの削除にかかる速度は明らかにFinderが遅い印象はあります(rmコマンドだとそんなことはないかな?)。1秒1ファイル、みたいな速度感です。ファイルを移動した場合(コピーしてコピー元を削除という動作の場合)遅くはありません。(ただし、上記ベンチマークをしたもう一個のファイルサーバーでは削除が遅いってことはなかったから、これはSambaのオプションの問題かな?)そんな諸々を考えると、Smbは設定がとても厄介なんじゃないかって思ったりするけど、なんでこんな大変なんだろ。(macOS同士で繋ぐときに「遅い」って評判が立たない程度にはAppleも気を遣って欲しいとは思いますが、それに最適化すると別の環境との接続で問題が出るとかあんのかね?)(最適値探るのが大変なのはNFSも同じか。概してネットワークは難しい?)
とか書いたところで、自宅環境でもテスト。自宅環境はギガビットです。M1 Mac miniのシステムドライブ(SSD)に共有フォルダを作成してそこに対してM2 Mac miniからベンチマークしてみたのが下図の上側。
おんやぁ?って遅さだったので、M1 Mac mini側(サーバー側)で /etc/nsmb.conf にSMB署名無効化を設定した結果が下側の数字になります。まあ普通の値ですね。<追記>ん?このnsmb.confの値はクライアント側でやるべき処置か? じゃあなんで速度改善してんだろ…??? サーバー側はファイル共有を止めた後 sudo defaults write /Library/Preferences/SystemConfiguration/com.apple.smb.server SigningRequired -bool FALSE を実行でした。その後ファイル共有を再開させればOK</追記>
Windows 11マシンから同じように実行した結果が下。
シーケンシャルなリード・ライトではとりあえずは差はなさそうな結果です。まあ、Finderやエクスプローラーからその階層のファイル一覧が表示されるまでの時間はMacの方がワンテンポ遅いように思えるけど(.DS_Storeの問題?)、問題ない範囲だとは思う。とりあえず自分の環境周りだとそんな感じだなぁといったところです。
Teamsに入れなくなった
メモ。
直前まで使えてたのにマシンを再起動したら「Teams アカウントの切り替えが検出されました」というメッセージが出て、しかし正しいはずのアカウント(メールアドレス)とパスワードを入れてもサインインできないという状態になった。
Mac で Office のライセンス ファイルを削除する方法 [ Microsoft サポート] のアプリを走らせてライセンスファイルを削除した後、Microsoft Teamsのキャッシュクリアスクリプト(Mac) [Qiita] を走らせてキャッシュをクリア。その後、Teamsに入れるようになった。
イベントに付随して更新された情報
iOS/iPadOS 17, WatchOS 10, macOS 14 Sonomaのリリース日が9/27に確定したそうです。Sonomaについてはメインマシンに繋がっているDroboをどうしようってのがありますな。正式対応する事はないため、どうにかしないといけないのだけど…
iOS 17はiPhone Xより古いiPhoneが、iPadOS 17は初代 iPad Pro、第二世代 iPad Air、第五世代 iPad、第四世代 iPad miniが対象外となり、個人的には何気に使用頻度の高い初代 iPad Proがいよいよだめかってところです。
Sonomaは大雑把に2018年以降のモデルが対象ですかね。WatchOS 10は Series 4 以降なので、個人的に所有しているApple Watchがそれだから、であればもう一年頑張ってみるかとかちょっと思ったり…
Air Posd ProはケースをUSB-Cとしたものが新たに登場するそうです。本体性能に変化はない模様。(Apple、AirPods Pro(第2世代)をUSB-C充電にアップグレード [Apple])
イベント中で触れられてましたが、iCloud+のストレージプランが二つ追加されました。6TBと12TB。お値段が分かりませんけど、2TBじゃ心許ないという方々には必要っすね。何せデータの整理は非常に面倒くさい。<追記>6TBが3900円。12TBが7900円とのこと。ちなみに2TBが1300円だからその3倍、大体6倍の金額になってる。</追記>
個人的には2TBで契約しているけど、残りが750GBです。あとどれだけ持ちますかね。
Parallels Desktopをアップグレードした
Vector PCショップの方でサブスクリプションが安売り(4980円)していたので、どうせ毎年アップグレードしているのだからと買ってみました。ちょっと興味あることあったので…
Parallels DesktopはMacがIntel CPUに移行した古からある仮想マシン環境ですけど、Apple Siliconにも対応し、Apple SiliconネイティブのmacOSも動作するようになっているものの、ハードウェアに関する設定が出てこないのですよね。つまりはハードウェアの制御ができないってことで、何が一番困るかっていうとディスプレイ解像度が固定されちゃっていることです。
残念ながらVenturaではそこは変わりませんでした。が、macOS SonomaにするとmacOSのVirtualizationフレームワークが更新されることで、ディスプレイのリサイズはできるようになる(解像度の変更が効くようになる?)そうです。Sonomaへの正式対応はVer.19だから、アップデートは必要だったということで納得しておきましょう。
macOS Sonoma 14 以降では、仮想マシンのウィンドウサイズに基づいた動的な仮想マシン解像度調整がサポートされています。
Parallels Desktop 19 for Mac リリースノート
ちなみにVer.19ではWindowsでOpenGL 4.1に対応しましたってことでグラフィックの互換性が強化された感じですけど、Blender 3.6は起動しません…。設定を最適化することで動くようになるかもしれませんが少なくとも標準設定では起動しない模様。これはどちらかというとx64→arm64の変換側の問題のような気はするけど。
umask
UNIX的アクセス権の考え方はmacOSにも引き継がれてて(今でもmacOSはUNIXなんかね?)、だからumaskって考え方も当然あるわけですが、じゃあ実際に設定するにはどうすんだってところに疎かったわけです。
そこいら辺の情報はAppleはサポートサイトに載せていて
macOS でカスタム umask を設定する [Apple サポート]
と書かれてました。ユーザの権限で動作するアプリが生成するファイル・フォルダのデフォルトのパーミッションを変更したければ
sudo launchctl config user umask nnn
を実行せよとおっしゃっておりますな。
644ってパーミッションが設定されたファイルを生成するところで、これを664にしたければ、
sudo launchctl config user umask 002
を実行しなさいとなります。
ちなみにumaskの現在の値を確認する umask コマンドやその-SオプションはmacOSでも動作しておりました。
% umask
022
% umask -S
u=rwx,g=rx,o=rx
AppleCare+
2020年5月31日にMacBook Pro (16-inch, 2019) の整備品を発注し、保証終了日が2023年6月1日のAppleCare+に加入してました。それで今日、システム設定になんかメッセージが出ていて、それはAppleCare+の延長手続きは15日以内にやってねって内容でした。
確かにAppleのAppleCare+の補償を延長するってページには
24 か月後または 36 か月後も、解約するまで月単位または年単位で保証を継続できます。
ってなってるんですね。ほぉって思いました。
このMacBook Proを発注した当時、AppleCareを利用してのAppleの製品保証は最大3年でした。AppleCare+も毎年支払うってオプションはあるけどそれも最大は3年までって思い込んでいたんですが、これが3年を超えても保証が続くようになるってのがAppleCare+だったんすね。
なを、延長手続きはカード払いみたいだから、たぶん次回以降自動更新されるんで、必要なくなったら忘れずに解約しないとよろしくなさそうです。要注意です。