Estou tentando iniciar o launchd (que é a alternativa do macOS para o cron) para executar um trabalho para mim. Não funciona, enquanto executa os comandos em um bash iniciado com sudo. Tentei redirecionar a saída para arquivos, mas examiná-los também não me esclareceu. Eu gosto de ter acesso a esse ambiente 'primal' que o launchd usa para executar comandos, para que eu possa experimentar diretamente lá e ver o que está faltando.
PS: Aqui está o script que executo no meu job launchd (como root):
#!/usr/bin/env bash
export HOME=/Users/evar
source /users/evar/.bashrc
/Users/evar/anaconda/bin/python /Base/_Code/Misc/hosts/updateHostsFile.py --auto --replace --backup &> /Users/evar/log/hosts.out2
# tmux new -d -s hosts "/Users/evar/anaconda/bin/python /Base/_Code/Misc/hosts/updateHostsFile.py --auto --replace --backup" # I tried this, but sudo tmux kept saying no sessions while logs kept said "duplicate session hosts".
No início do seu script você poderia fazer algo como
Isso colocará o ambiente herdado em um arquivo no formato
/tmp
.Agora, na linha de comando, você pode usar o comando
env -i /bin/sh
para gerar um novo shell com um novo ambiente. Dentro deste shell você pode colocarsource
o/tmp
arquivo que você criou.Você pode querer editá-lo primeiro e adicionar
export
na frente de cada linha para imitar melhor o ambiente iniciado.