Caffeinate


Habe mich dieser Tage verwundert, warum der Bildschirmschoner ansprang. Meine Einstellungen sind so schon ewig so, daß der Monitor nach 15 Minuten ohne Aktivität Strom spart und abdunkelt. Habe sofort die Einstellungen überprüft. Alles wie geplant. Bildschirmschoner nachjustiert auf 30 Minuten.

Bildschirmschoner startet wieder. Wie kommt das?

Dann fiel der Groschen. Ich hatte eine App laufen, die aus 6.000 Textfiles 10 Millionen Zeilen extrahiert. Das dauert und geht der Rechner in Ruhe dauert das noch länger, viel länger. Ein laufende 4D-Methode und regelmäßiger Zugriff auf die Festplatte/SSD hindert den Rechner nicht, in den Ruhezustand zu wechseln. Ab OS X.11 El Capitan läßt sich Ruhezustand Monitor nicht mehr getrennt vom Ruhezustand des Rechner einstellen. Ergo muß mein 4D Prozeß, den Rechner anstupsen und „ich bin noch am Arbeiten“-melden.

Eine Frage in die Runde der 4D-Werkstätter brachte die Lösung: caffeinate.

Caffeinate kann mehr. In meinem Fall reicht zu simulieren, es bewege jemand die Maus. Das sind die zwei Zeilen Code:

$cmd:=“caffeinate -u -t 1″
LAUNCH EXTERNAL PROCESS($cmd;$in;$out;$error)



These days I was wondering, why screensaver got active. My preferences for years switched off screensaver in favor of switching off the screen completely. Checked the preferences and updated screensaver not to jump in before 30 minutes.

Didn’t work out. Screensaver still kicked in.

At last the penny dropped. I had a 4D.app running that was extracting 10 million lines from 6.000 textfiles. That takes time and if the Mac falls into sleep it even takes longer. A 4D-method runnning with regular access to HD/SSD doesn’t prevent the machine from falling asleep. Since OS X.11 El Capitan darkening of screen can’t be set differently from setting the computer to power savings. That means my 4D-method needs to simulate somebody moving the mouse, at least a little bit.

I asked my colleagues from 4D Werkstatt and got the solution: caffeinate.

Caffeinate is quite powerful. In this case just keeping the computer alive is sufficient. Here are the two lines of code:

$cmd:=“caffeinate -u -t 1″
LAUNCH EXTERNAL PROCESS($cmd;$in;$out;$error)