私は、管理作業の手助けとなる日記として、15 分ごとに Mac のスクリーンショットを撮る小さな crontab コードを持っています。このコードは、ここ数年は問題なく動作していましたが、最近、画面上のアプリケーション、下部のアプリケーション ドック、デスクトップ上のアプリケーション アイコンやファイルさえも表示されず、デスクトップと上部のステータス バーだけが撮影されるようになりました。
コードはターミナルで手動で実行すると正常に動作しますが、crontab では動作しません。
crontab を再インストールしてみましたが、問題は解決しませんでした。そして、もうこの問題を解決する方法は見つかりません。
crontab をスクリーンキャプチャで動作させて、アプリケーションを画面上にも表示させるにはどうすればよいですか?
私はMac Catalinaバージョン10.15.1を実行しています。
*/15 * * * * /usr/sbin/screencapture -Cxd -tjpg ~/Documents/AutoScreenShot/screen-
date +"\%Y\%m\%d-\%H\%M"
.jpg
答え1
昨日の午後にも同じ問題が発生しましたが、何時間も試行した後、解決しました。問題は、cron に画面アクセスがないことです。
解決策はこれだ
- SIPを閉じます。
Macを再起動し、cmd+rを押してリカバリモードに入り、ターミナル入力を開いてcsrutil disable
、もう一度再起動します。
- TCC に書き込み権限を付与する
sudo chmod 664 /Library/Application\ Support/com.apple.TCC
- cron と screencapture に screencapure 権限を付与する
sudo sqlite3 "/Library/Application Support/com.apple.TCC/TCC.db" 'insert into access values ("kTCCServiceScreenCapture", "/usr/sbin/cron", 1, 1, 1, "", "", "", "UNUSED", "", 0,"")'
sudo sqlite3 "/Library/Application Support/com.apple.TCC/TCC.db" 'insert into access values ("kTCCServiceScreenCapture", "/usr/sbin/screencapture", 1, 1, 1, "", "", "", "UNUSED", "", 0,"")'
- SIPを再度有効にする
Macを再起動し、cmd+rを押してリカバリモードに入り、ターミナル入力を開いてcsrutil enable
、もう一度再起動します。