Como posso abrir um shell no ambiente que o cron (alternativamente launchd) usa para executar comandos?

0

Estou tentando fazer com que o launchd (que é a alternativa do macOS para o cron) execute um trabalho para mim. Não funciona, enquanto executa os comandos em um bash lançado com o sudo. Eu tentei redirecionar a saída para arquivos, mas examiná-los também não me esclareceu. Eu gosto de ter acesso a este 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 eu 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".
    
por HappyFace 30.10.2018 / 19:40

1 resposta

1

No início do seu script, você poderia fazer algo como

env > /tmp/myscriptrun_env.$$

Isso colocará o ambiente herdado em um arquivo em /tmp .

Agora, a partir da linha de comando, você pode usar o comando env -i /bin/sh para gerar um novo shell com um novo ambiente. Dentro desse shell você pode source o arquivo /tmp que você criou.

Você pode editá-lo primeiro e adicionar export na frente de cada linha para imitar melhor o ambiente iniciado.

    
por 31.10.2018 / 02:10