Förhindra systemets vila medan en process eller ett kommando är aktivt i Mac OS X

Många Mac-användare använder verktyg för att tillfälligt förhindra att datorn sover, ofta beroende av sömnhörn, verktyget tredje part som kallas koffein, pmset eller senare, kommandoradsverktyget som nu är buntat med OS X kallat koffein. Som standard kommer koffeinmenyobjektet och koffeinkommandot att förhindra sömn så länge de är individuellt aktiverade för mycket användbar för stationära användare medan de är på en Mac, men inte särskilt användbara om du vill ha OS X-sömnfunktionen beroende av slutförandet av en specifik process eller uppgift.

Det här kommer vi att täcka här med kommandoraden, som har processberoende sömnförebyggande åtgärder som endast blockerar Macsömfunktionen medan ett specifikt kommando, uppgift eller process körs eller är aktivt, och när den är klar kommer den datorn kommer att återställa traditionella sömnvanor.


För att åstadkomma kommandospecifik sömnvikt, kommer vi att använda en variant av koffeinkommandot, vilket kan förhindra sömn på olika sätt. Vi kommer att gå igenom några exempel, men manens sida av koffein ger några ytterligare alternativ som kan vara önskvärda för andra situationer också.

För våra ändamål här för att göra sömnförebyggandet beroende av att ett specifikt kommando eller en process har slutförts, använder du -i-flaggan så:

caffeinate -i [command / process]

Det kan redan vara uppenbart, men det går också att starta kommandot eller processen som anges i argumentet genom att utföra koffeinkommandot så här.

Om du till exempel vill att Mac ska undvika att sova när kommandot "make" är aktivt, använder du följande kommandosyntax:

caffeinate -i make

Eller kanske du bara vill förhindra sömn medan en ssh-anslutning är aktiv för en viss server, och du vill skicka koffeinkommandot till bakgrunden, då skulle du lägga till en ampersand till slutet så bra:

caffeinate -i ssh coffeebeans &

Du kan även köra detta med egna skript eller kommandon på en annan plats:

caffeinate -i /private/tmp/./whatisthis.sh

Eller om du vill ha sömnförebyggande aktiva så länge Safari webbläsaren körs i GUI, använder du följande syntax: Observera att du måste ange hela sökvägen till binären i .app-filen:

caffeinate -i /Applications/Safari.app/Resources/MacOS/Safari

Den -i-flaggan förhindrar systemets sömn, men du kan använda andra flaggor för att skapa påståenden för att förhindra disk eller visa sömn också. För att förhindra visning av viloläge (det vill säga skärmen stängs av och går in i låst läge eller skärmsläckare) behövs -d-flaggan:

caffeinate -d [command / process]

Liksom -i-flaggan kan detta gälla för vilken systemuppgift som helst, oavsett om den körs från kommandoraden eller GUI, var noga med att ange rätt namn med rätt fall. Ett annat exempel:

caffeinate -d telnet towel.blinkenlights.nl

Det här kommandot innebär att så länge som telnet till Star Wars ASCII-filmen är aktiv kommer inte Macs-skärmen att sova. Om telnet slutar eller Star Wars är färdig, kan systemet sova som vanligt, definierat av sömn- och energinställningar i OS X.

Naturligtvis, eftersom koffein är helt baserat på kommandoraden kommer det inte att vara tillämpligt på alla användare, men för dem som spenderar mycket tid i terminalen kan det vara ett bra trick. För Mac-användare som är mer bekväma i det grafiska användargränssnittet, är ett effektivt sovande hörn och använder koffein-appen troligen de bästa satsningarna för att utföra liknande funktioner.

Om du vill utföra en liknande processberoende uppgift, men undvik Terminal- och kommandoraden, gör Wimoweh-programmet samma sak som en menyrad, men det är en betald app som kan göra det mindre önskvärt för vissa användare, och det erbjuder inte ett generellt process- eller kommandoradsbaserat uppdragsuppdragsargument. Således föredras koffein med en riktig flagga fortfarande av många.