Posts Tagged ‘launchd’

Sonntag, 8. März 2020

MacPorts s-nail unter macOS meldet „Cannot find a usable character set to encode message“

Kürzlich habe ich hier beschrieben, wie ich meinem iMac endlich beigebracht habe, E-Mails von der Kommandozeile zu versenden.

Heute dann die Erkenntnis, dass ein Cron- Launchd-Job folgende Fehlermeldung ins Log ausspuckt:

mail: Cannot find a usable character set to encode message: No such entry, file or directory
mail: ... message not sent

Ich habe mir dann den zu versendenden Mail-Body in eine Datei ausgegeben und überprüft, ob dort Nicht-ASCII-Charakter vorkommen (Unter Linux Nicht-ASCII-Charakter in einer Datei ausgeben). Volltreffer! Im E-Mail-Text finden sich deutsche und französische Umlaute, die als UTF-8 abgelegt sind.

Das Problem habe ich gelöst, indem ich /opt/local/etc/mail.rc um folgende Zeilen ergänzt habe:

...
set ttycharset=utf-8
set charset-8bit=utf-8
...

Seither klappt es mit dem Versand des E-Mails.

Meine Vermutung ist, dass bei launchd-Prozessen gewisse Umgebungsvariablen nicht mitkommen, die s-nail verwendet, um das Terminal-Charset zu eruieren.

Nachtrag

Die Fehlermeldung wird in Zeile 2334 des Source Codes generiert (Stand: 8. März 2020).

Tags: , , , , , ,
Labels: Apple

2 Kommentare | neuen Kommentar verfassen

Sonntag, 28. August 2016

launchd vergisst nach Upgrade auf OS X El Capitan die Pfade (PATH)

Dies ist bei mir ganz kritisch, da meine Scripts auf viele MacPorts-Tools angewiesen sind — unter anderem realpath, wget sowie curlftpfs.

Abhilfe schafft man folgendermassen:

~/Library/LaunchAgents/com.emeidi.environment.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>my.startup</string>
  <key>ProgramArguments</key>
  <array>
    <string>sh</string>
    <string>-c</string>
    <string>launchctl setenv PATH /opt/local/bin:/opt/local/sbin:$PATH</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
</dict>
</plist>

Quelle: Setting the system-wide PATH environment variable in Mavericks

Anschliessend startet man den „Job“:

$ launchctl load ~/Library/LaunchAgents/com.emeidi.environment.plist

Tags: , , , , ,
Labels: Apple

Keine Kommentare | neuen Kommentar verfassen