Artigos estúpidos sobre o lançamento de daemons no Mac

0

Estou configurando um aplicativo chamado Jenkins no Mac, que é uma ferramenta de criação.

Há muitos artigos muito úteis sobre esse tópico e todos envolvem a modificação de um problema para apontar para um usuário recém-criado.

Todos dizem para começar / parar de usar o sudo

 sudo launchctl unload -w /Library/LaunchDaemons/org.jenkins-ci.plist
 sudo launchctl load -w /Library/LaunchDaemons/org.jenkins-ci.plist

e todos eles dizem para criar um novo usuário para essa finalidade (que tal um usuário existente?)

sudo dscl . create /Users/jenkins
sudo dscl . create /Users/jenkins PrimaryGroupID 1
sudo dscl . create /Users/jenkins UniqueID 300
sudo dscl . create /Users/jenkins UserShell /bin/bash
sudo dscl . create /Users/jenkins home /Users/Shared/Jenkins/Home/
sudo dscl . create /Users/jenkins NFSHomeDirectory /Users/Shared/Jenkins/Home/
sudo dscl . passwd /Users/jenkins

Agora eu sou novo no mac. E isso não me diz nada sobre:

  1. como tornar a inicialização do aplicativo / serviço / daemon automaticamente ao reiniciar a máquina.
  2. Como isso dá ao usuário as permissões necessárias?
  3. também precisei fazer login com um usuário para alterar o plist e depois voltar para outro usuário etc.
  4. Eu nem vejo esse usuário recém-criado em / Users / jenkins, apesar de cada linha ter sido executada ok. Eu não vejo / Usuários / Jenkins.
  5. Como a inicialização da máquina e o login como conta admin farão com que esse usuário do jenkins e o daemon iniciem? Eu simplesmente não entendi? Preciso adicionar o sudo a algum script de inicialização no admin.

Quero dizer, realmente é isso que eu acho que todos pensam quando pensam em ter um processo de daemon em execução. Não está constantemente executando o sudo e sudo isso.

Não sou nada do que acontecerá se eu inicializar a máquina e fizer login com o usuário jenkins. Como faço o servidor jenkins rodar não importando qual usuário está logado na máquina?

Observação: eu executei tudo de uma conta de administrador. Não é root.

Então eu preciso de algumas informações completas sobre como fazer isso.

Quero dizer, qual é o sentido de um daemon se eu precisar fazer o sudo load toda vez que a máquina iniciar?

Agora, minha situação exata é que eu já tenho um usuário admin jenkinsadmin que eu quero usar para monitorar a máquina, etc. Criar este novo usuário como acima não me deu um usuário com permissões de administrador. De fato, executar o sudo não era possível. Então, como eu automaticamente inicio este jenkins cada vez que a máquina inicializa e eu faço login com o jenkinsadmin?

    
por Code Droid 14.09.2012 / 01:43

1 resposta

0

Você precisa dizer ao Mac que o Jenkins deve ser iniciado imediatamente após a reinicialização. Isso é feito usando os chamados LaunchDaemons. Para mais informações sobre LaunchDaemons e LaunchAgents dê uma olhada nos daemons e serviços página dos Recursos para Desenvolvedores da Apple .

Basicamente, um arquivo especial que reside em /Library/LaunchDaemons faz com que o Mac inicie um determinado programa. Se o arquivo incluir <key>RunAtLoad</key><true/> , o aplicativo será iniciado na inicialização do sistema e não será necessário iniciar o processo manualmente.

Você não precisa de um usuário com direitos de acesso administrativo. Basta definir o usuário como usuário para o processo no seu arquivo LauchDaemon-config-file. Quando o sistema inicia o processo, ele iniciará o processo como aquele determinado usuário. E mesmo que você inicie o processo manualmente executando sudo launchctl , o processo será executado como seu jenkinsadmin -User.

    
por 14.09.2012 / 12:59

Tags