A melhor opção é usar launchd
o substituto interno para cron
, init
e xinetd
. Para fazer isso, você precisa criar um documento XML (especificamente um .plist) para definir o que deseja fazer. Um programa chamado Lingon fornece uma excelente GUI para fazer isso e a instalação também.
Você pode salvar o seguinte arquivo como com.example.apache2.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>Disabled</key>
<true/>
<key>Label</key>
<string>com.example.apache2</string>
<key>OnDemand</key>
<false/>
<key>ProgramArguments</key>
<array>
<string>/opt/local/bin/apache2/bin/apachectl</string>
<string>-k</string>
<string>start</string>
</array>
</dict>
</plist>
Você então deseja instalar este .plist em /Library/LaunchDaemons
porque deseja que isso seja executado quando o computador for inicializado (como um serviço). Você pode fazer isso copiando o arquivo para /Library/LaunchDaemons
(Daemons do usuário no Lingon) e executando o comando sudo launchctl load -w /Library/LauchDaemons/com.example.apache2.plist
. Então, sempre que o computador é iniciado, o comando é executado. De nota, os Daemons de Lançamento em /Library
são executados como root, então você não precisa do sudo.
Para mais informações sobre o launchd, confira a página man , a página do manual do launchd.plist , Introdução ao launchd , ou você pode pesquisar aqui no Superusuário, pois já existem várias perguntas sobre o launchd.