launchdctl en plist file

Pagina: 1
Acties:

  • JaQ
  • Registratie: Juni 2001
  • Laatst online: 23:41
Ik ben ondertussen al een uurtje of 3 aan het kutten met launchd, maar ik kom er niet uit :(

Gisteravond heb ik mt-daapd gecompileerd en die doet precies wat ie moet doen (namelijk daap daemon zijn). Nu wil ik dit ding automagisch laten starten als ik inlog, dus kom ik uit bij launchd.

Als ik de daemon vanaf de commandline start, dan doe ik dat als volgt:

code:
1
2
klokhuis:/etc/mt-daapd jacco$ sudo /usr/local/sbin/mt-daapd -c /etc/mt-daapd/mt-daapd.conf 
klokhuis:/etc/mt-daapd jacco$


Vervolgens draait de daemon, precies wat ik wil.

Nu wil ik dit in een plist file vastleggen, zodat ik deze met launchctl als daemon kan installeren. Het plist file dat ik zover heb ziet er als volgt uit:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?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>org.landlust.mtDaapd</string>
        <key>ProgramArguments</key>
        <array>
                <string>/usr/local/sbin/mt-daapd -c /etc/mt-daapd/mt-daapd.conf</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
        <key>StandardErrorPath</key>
        <string>/var/log/mt-daapd/error.log</string>
        <key>StandardOutPath</key>
        <string>/var/log/mt-daapd/out.log</string>
</dict>
</plist>


Dit plist file laad ik vervolgens in launchd, waarna ik een error krijg:

code:
1
2
3
klokhuis:/etc/mt-daapd jacco$ launchctl load /etc/mt-daapd/mtDaapd.plist klokhuis:/etc/mt-daapd jacco$ launchd[18881]: org.landlust.mtDaapd: execve(): No such file or directory

klokhuis:/etc/mt-daapd jacco$


Als ik vervolgens in het error log kijk, dan zie ik inderdaad:

code:
1
launchd[18882]: org.landlust.mtDaapd: execvp("/usr/local/sbin/mt-daapd -c /etc/mt-daapd/mt-daapd.conf", ...): No such file or directory


Het vreemde is echter dat dit bestand wel bestaat.

Wie o wie kan me een schop in de juiste richting geven...

Egoist: A person of low taste, more interested in themselves than in me


  • chem
  • Registratie: Oktober 2000
  • Laatst online: 12-02 10:41

chem

Reist de wereld rond

Wellicht een rare vraag; maar waarom launchd ipv StartupItems ?

Klaar voor een nieuwe uitdaging.


  • JaQ
  • Registratie: Juni 2001
  • Laatst online: 23:41
chem schreef op woensdag 17 mei 2006 @ 22:27:
Wellicht een rare vraag; maar waarom launchd ipv StartupItems ?
Omdat vanaf 10.4 StatupItems eigenlijk depricated zijn en launchd de "standaard" moet worden/is. (althans, als je dit moet geloven)

Ik heb net lingon gedownload, misschien dat een grafisch tooltje helpt.

Egoist: A person of low taste, more interested in themselves than in me


  • chem
  • Registratie: Oktober 2000
  • Laatst online: 12-02 10:41

chem

Reist de wereld rond

JaQ schreef op woensdag 17 mei 2006 @ 22:30:
[...]


Omdat vanaf 10.4 StatupItems eigenlijk depricated zijn en launchd de "standaard" moet worden/is. (althans, als je dit moet geloven)

Ik heb net lingon gedownload, misschien dat een grafisch tooltje helpt.
Hmz, nooit geweten - leuk om te weten :)

Klaar voor een nieuwe uitdaging.


  • JaQ
  • Registratie: Juni 2001
  • Laatst online: 23:41
chem schreef op woensdag 17 mei 2006 @ 22:33:
[...]
Hmz, nooit geweten - leuk om te weten :)
Ik kwam er ook alleen maar achter door de wiki van mt-daapd. In ieder geval is het wel iets lastiger voor mij dan een simpel start-stop shell-script.

Dat lingon tooltje is trouwens best ok, maar om een of andere reden doet het nog niet helemaal wat ik wil (to be continued...)

Egoist: A person of low taste, more interested in themselves than in me


  • JaQ
  • Registratie: Juni 2001
  • Laatst online: 23:41
Gevonden!

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?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>org.landlust.mtDaapd</string>
        <key>ProgramArguments</key>
        <array>
                <string>/usr/local/sbin/mt-daapd</string>
                <string>-c</string>
                <string>/etc/mt-daapd/mt-daapd.conf</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
        <key>StandardErrorPath</key>
        <string>/var/log/mt-daapd/error.log</string>
        <key>StandardOutPath</key>
        <string>/var/log/mt-daapd/out.log</string>
</dict>
</plist>


Vervolgens laad ik deze met
code:
1
klokhuis:/var/log/mt-daapd jacco$ sudo launchctl load /etc/mt-daapd/mtDaapd.plist


of vanuit het lingon tool.

Het enige waar ik nu mee zit is dat als ik de daemon unload (of stop), het proces niet gestopt wordt (en een killall dus nodig is). Dat is op zich best ranzig, maar daar vind ik wel wat voor. Uiteraard sta ik open voor suggesties ;)

Overigens, voor de liefhebbers:

What is mt-daapd
mt-daapd is a program which acts as an iTunes (DAAP) server for Linux and other POSIX unixes. It may eventually support Win32 as well.

Some random features that it supports:

• Supports the Roku SoundBridge (query/browse/index support)
• Supports periodic rescans of the database
• Can advertise shoutcast streams
• Supports password-protected shares
• Is web-configurable and managable
• Support dynamic playlists, like iTunes "Smart playlists"
• Probably other things I've forgotten
....

Best wel erg handig als je 90% van je mp3's op je externe schijf zet, omdat je je krachtboekje niet vol wil laden met MP3's. Nu kan ik als ik thuis ben toch al mijn mp3's benaderen. Niets geen gesodemieter met dubbele libraries, directory scanners die de mp3's geautomatiseerd in de library.xml zetten etc. etc.

[ Voor 11% gewijzigd door JaQ op 17-05-2006 22:59 ]

Egoist: A person of low taste, more interested in themselves than in me


  • Wortelsoep
  • Registratie: Juni 2001
  • Niet online
JaQ schreef op woensdag 17 mei 2006 @ 22:59:
Het enige waar ik nu mee zit is dat als ik de daemon unload (of stop), het proces niet gestopt wordt (en een killall dus nodig is). Dat is op zich best ranzig, maar daar vind ik wel wat voor. Uiteraard sta ik open voor suggesties ;)
Volgens mij is dat het verschil tussen een LaunchDaemon en een LaunchAgent. Ik draai zelf dnetc via LaunchDaemon, als ik die kill wordt 'ie ook weer gestart. Gelukkig hebben we -pause als het nodig is.
Probeer het eens in LaunchAgents te zetten, misschien dat dat werkt.
Overigens, voor de liefhebbers:

What is mt-daapd
mt-daapd is a program which acts as an iTunes (DAAP) server for Linux and other POSIX unixes. It may eventually support Win32 as well.

Some random features that it supports:

• Supports the Roku SoundBridge (query/browse/index support)
• Supports periodic rescans of the database
• Can advertise shoutcast streams
• Supports password-protected shares
• Is web-configurable and managable
• Support dynamic playlists, like iTunes "Smart playlists"
• Probably other things I've forgotten
....

Best wel erg handig als je 90% van je mp3's op je externe schijf zet, omdat je je krachtboekje niet vol wil laden met MP3's. Nu kan ik als ik thuis ben toch al mijn mp3's benaderen. Niets geen gesodemieter met dubbele libraries, directory scanners die de mp3's geautomatiseerd in de library.xml zetten etc. etc.
Hmmm, klinkt interessant, hoe werkt dat in de praktijk?

Verwijderd

Wel een aardig topic, maar ik begrijp niet helemaal waarom je mt-daapd gebruikt op een mac terwijl je gewoon iTunes aan kan zetten en je muziek kan sharen?

Ik draai zelf mt-daapd op mijn (gentoo) linux box om mijn mp3's af te kunnen spelen met mijn PowerBook. Eigenlijk best omslachtig als ik het nu bedenk. Van mijn linux box met mtdaapd naar mijn PowerBook en van mijn PowerBook naar mijn airport express om af te spelen via mijn stereo 8)7

[ Voor 15% gewijzigd door Verwijderd op 18-05-2006 17:04 ]


  • JaQ
  • Registratie: Juni 2001
  • Laatst online: 23:41
wilko2 schreef op donderdag 18 mei 2006 @ 09:42:
[...]
Volgens mij is dat het verschil tussen een LaunchDaemon en een LaunchAgent. Ik draai zelf dnetc via LaunchDaemon, als ik die kill wordt 'ie ook weer gestart. Gelukkig hebben we -pause als het nodig is.
Probeer het eens in LaunchAgents te zetten, misschien dat dat werkt.
Nou.. het gaat er meer om dat als ik de Daemon unload, het proces blijft draaien (en ik deze dus handmatig moet doden).
Verwijderd schreef op donderdag 18 mei 2006 @ 17:02:
Wel een aardig topic, maar ik begrijp niet helemaal waarom je mt-daapd gebruikt op een mac terwijl je gewoon iTunes aan kan zetten en je muziek kan sharen?

Ik draai zelf mt-daapd op mijn (gentoo) linux box om mijn mp3's af te kunnen spelen met mijn PowerBook. Eigenlijk best omslachtig als ik het nu bedenk. Van mijn linux box met mtdaapd naar mijn PowerBook en van mijn PowerBook naar mijn airport express om af te spelen via mijn stereo 8)7
Ik heb een powerbook. Daar zit een 80 Gb schijfje in. Die 80GB wordt gebruikt voor mij OS, voor documenten, een oracle database en nog meer. Daarnaast heb ik een iTunes library van ongeveer 5 tot 10 GB op die schijf staan. In iTunes staat de optie "kopieer bestanden naar 'iTunes Music' bij importeren" aan. Dit wil ik graag, zodat alles automagisch netjes geordend wordt.

Als ik nu thuis ben, dan heb ik via firewire een 160GB externe harde schijf via firewire aan mijn powerbook verbonden. Op die 160 GB schijft staat ongeveer 60 GB aan muziek. Mijn 'iTunes Music' directory wordt via deja-vu iedere zondag nacht gebackupped op die firewire schijf (net zoals mijn documenten en nog wat zaken). Als ik iets uit mijn iTunes verwijder, blijft het wel op die schijf staan. Zo heb ik altijd de nieuwste mp3's bij me en tevens een backup van de oudere mp3's.

Als ik nu dus iets wil luisteren vanaf die externe schijf, moet ik het eerst toevoegen aan mijn locale library. Gevolg is dus dat een kopie wordt gemaakt naar mijn powerbook schijf. En dat wil ik dus niet (ruimtegebrek en zo). Best een onfris probleem op zich, aangezien je niet zomaar 2 libraries kan hebben in iTunes, zeker niet aangezien ik dan continue moet syncen. Een oplossing die je dan kan kiezen is het DAAP protocol. Ik gebruik nu dus mt-daapd om alle mp3's op die externe harde schijf te kunnen benaderen, zonder deze aan mijn library toe te voegen.

Misschien dat er wel betere oplossingen zijn, maar dit was de eerste die ik bedacht heb die precies doet wat ik wil (namelijk tijdelijk mijn library kunnen opschalen zonder sync problemen). Om hiermee meteen de vraag van wilko2 te beantwoorden: Dit werkt prima. mt-daapd is zo stabiel als het maar kan (tot op heden).

Egoist: A person of low taste, more interested in themselves than in me

Pagina: 1