Denna delen av 99 uppdateras inte längre utan har arkiverats inför framtiden som ett museum.
Här kan du läsa mer om varför.
Mac-nyheter hittar du på Macradion.com och forumet hittar du via Applebubblan.
speedhead

speedhead

Medlem
  • Plats Göteborg
  • Registrerad 2005-04-29
  • Senast aktiv 2009-01-15
  • Antal inlägg 5

Foruminlägg

De senaste inläggen speedhead har skrivit i forumet.

1

Nu är problemet löst. Det verkar som att Apple har en bug i launchd som gör att om en .plist fil skapas för att köra vid vissa tidsintervall och intervallet ligger för nära i tiden från det att filen laddas med launchctl så skjuts det upp till ett senare tillfälle. Det rör sig om ca 1 timme. Det finns mer att läsa om detta på http://discussions.info.apple.com/[email protected]@.68b4a015/2

Inte vid launchctl load -w . Det gör den vi launchctl unload -w

Jepp, det ligger i /usr/sbin och namnet i .plist filen stämmer. Annars skulle inte launchctl start com.gnumac.rundiskutil fungera vilket den gör och jag har dubbelkollat filnamnen. Något fel med att den ligger i /usr/sbin?

Ang. Ondemand. Korrekt kod sksa vara

<key>OnDemand</key>

Tack för det men det gör ingen skillnad. Skriptet körs ändå inte. En fråga som kan vara relevant är om det behövs överhuvudtaget. Se /System/Library/LaunchDaemons/com.apple.periodic-weekly.plist som saknar OnDemand.

launchctl list 

visar att skriptet är laddat

launchctl start com.gnumac.rundiskutil 

fungerar. DiskUtility körs och korreckt log skrivs.

Alla kommandon til launchctl är körda som root (sudo -s)

Förklaring till -w flaggan: " Remove the disabled key and write the configuration
files back out to disk." Se man launchctl. Den behövdes för att launchctl överhuvdtaget ska ladda min .plist fil .

Tack för alla tips men inget har hjälpt. Några fler förslag. Jag blir galen på det här. Alternativet är att köra det som ett cron-jobb men det bryter en del mot Apple standard så det skulle vara roligt att få det fungera.

Apple har infört launchd som ersättning för inetd etc. Detta ersätter också cron jobben för t.ex. periodic [daily, weekly, monthly}

Jag försöker nu att skapa ett jobb som körs varje vecka. Jobbet består av att köra ett script rundiskutil som består av

#! /bin/sh
date >>  /var/log/RunDiskUtil.log
diskutil repairPermissions / 2>&1 >> /var/log/RunDiskUtil.log
echo ""  >>  /var/log/RunDiskUtil.log

alltså att reparera filrättigheterna på root partitionen och skriva ti en log fil.

Scriptet fungerar aldeles utmärkt och det är inga konstigheter. Problemet uppkommer vid använding av launcctl. Min plist fil laddas ok med

$ launchctl load -w /Library/LaunchDaemons/com.gnumac.rundiskutil.plist

och ser ut som följande

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com
/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>Label</key>
        <string>com.gnumac.rundiskutil</string>
        <key>LowPriorityIO</key>
        <true/>
        <key>Nice</key>
        <integer>1</integer>
        <key>On Demand</key>
        <true/>
        <key>ProgramArguments</key>
        <array>
                <string>/usr/sbin/rundiskutil</string>
        </array>
        <key>StartCalendarInterval</key>
        <dict>
                <key>Hour</key>
                <integer>10</integer>
                <key>Minute</key>
                <integer>25</integer>
                <key>Weekday</key>
                <integer>5</integer>
        </dict>
</dict>
</plist>

Denna verifieras av Xcode som en riktig XML-fil ändå körs inte scriptet av launchd. Är det någon som vet var felet kan bestå?

1