Il modo migliore per farlo è creare un launchd
.plist, copiarlo su ~/Library/LaunchAgents
e lasciare che sia il sistema a gestirlo per te.
Esempio .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>com.user.startMySQL</string>
<key>ProgramArguments</key>
<array>
<string>mysql.server</string>
<string>start</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
Preferisco usare la convenzione di denominazione del file com.user.<name of function>.plist
quando le nominiamo così posso facilmente identificare cosa viene caricato e cosa no.
Successivamente, devi caricare questo .plist come root
in modo che venga eseguito come root
$ sudo launchctl load com.user.startMySQL.plist
Per verificare che sia stato caricato, puoi impartire il comando sudo launchctl list
e il comando mysql
per avviare una connessione al servizio MySQL.
Tieni presente che questo è solo un semplice esempio: potresti voler creare uno script per verificare se mysqld
è già in esecuzione prima di avviarlo.