定期実行と通知

定期実行と通知

Macをスリープさせたらlaunchdの定時処理はいつ動くのか|16時間ずれた実行時刻の正体

毎週月曜の朝8時に動くはずの処理が、その日の記録に1行もありませんでした。壊れたのかと思ってログを開いたら、ちゃんと動いた記録がありました。翌日の午前0時ちょうどに。結論を先に書きます。予定時刻にMacが寝ていると、その回は「飛ぶ」のではな...
定期実行と通知

手動ではSlackに届くのにlaunchdでは通知されない|環境変数が引き継がれない落とし穴

ターミナルで手で動かせばSlackにちゃんと通知が届く。ところが同じスクリプトを、時間になったらMacが勝手に動かす仕組み(launchd)から呼ぶと、処理は最後まで終わっているのにSlackだけ届かない。エラーは1つも出ません。結論を先に...
定期実行と通知

手動では読めるのにlaunchdでは「アクセス拒否」になる|Macのプライバシー権限の落とし穴

ターミナルで打てば普通に読めるファイルが、時間になったらMacが勝手に動かす仕組み(launchd)から呼ぶと「アクセス拒否」で止まる。これはパスの書き間違いではありません。パスは1文字も合っています。結論を先に書きます。エラーに Oper...
定期実行と通知

Macでは動くのにlaunchdではファイルが見つからない|相対パスの落とし穴

手で叩けば動くのに、launchdに任せた途端「そんなファイルはありません」で止まる。うちでも自動化を作り始めた頃に一番混乱したのがこれでした。結論から書きます。launchdは、スクリプトが置いてあるフォルダからは起動してくれません。だか...
定期実行と通知

launchdのplistを直したのに反映されない理由|bootoutとbootstrapの使い方

launchdの設定ファイル(plist)を開いて時刻を書き換え、保存した。それなのに、翌日も前の時刻のまま動く。あるいは、何時に動く設定になっているのか自分でも分からなくなる。原因は、あなたが書き換えたファイルと、Macが覚えている設定が...
定期実行と通知

自動化が「成功」と嘘をつくとき|終了コードが当てにならない話

自動化を毎日動かしていると、こういう状態がいちばん危険です。処理は失敗しているのに、機械は「成功」と記録している。結論から書きます。スクリプトの途中に |(パイプ)や tee を挟むと、中で何が失敗しても全体の結果は「成功」になります。 直...
定期実行と通知

処理結果をSlackとMacの通知に自動で飛ばす方法

集計が自動で動くようになっても、結果を見に行かなければ意味がありません。ファイルに保存されているだけでは、結局開かなくなります。私は最初これで失敗しました。作った本人が3週間見ていませんでした。そこで、結果のほうから届くようにしました。使っ...
定期実行と通知

macOSのlaunchdで毎日決まった時間に処理を実行する設定手順

PR:本記事にはアフィリエイト広告が含まれます。広告リンクから申込みが成立すると、当サイトが報酬を受け取る場合があります。集計するプログラムを作ったら、次は「自分で実行しなくても動く」状態にします。ここまで来て、はじめて自動化です。Macで...
定期実行と通知

自動化が止まったときに気づくためのエラーログ設計

自動化でいちばん怖いのは、止まることではありません。止まったことに気づかないまま、数ヶ月が過ぎることです。私はこれを実際にやりました。毎月動くはずの集計が、設定した日から一度も動いていなかったのです。気づいたのは3ヶ月後でした。手で動かせば...
定期実行と通知

launchdが動かない・終了コード127の原因と対処

結論から書きます。スクリプトをデスクトップ・書類・ダウンロードのいずれかに置いていませんか。 そこが原因です。macOSのプライバシー保護機能により、launchdから起動されたプロセスはこれらのフォルダを読み取れません。ターミナルから手動...