Bash
如何在 cron(或者 launchd)用來執行命令的環境中打開 shell?
我正在嘗試啟動(這是 macOS 的 cron 替代方案)來為我執行工作。它不起作用,而在使用 sudo 啟動的 bash 上執行命令。我嘗試將輸出重定向到文件,但檢查它們也沒有啟發我。我喜歡訪問這個用於執行命令的“原始”環境,這樣我就可以直接在那裡進行實驗,看看缺少什麼。
PS:這是我在啟動作業中執行的腳本(以 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".
在腳本的開頭,您可以執行類似的操作
env > /tmp/myscriptrun_env.$$
這會將繼承的環境放入
/tmp
.現在,您可以從命令行使用該命令
env -i /bin/sh
生成具有全新環境的新 shell。在此外殼中,您可以創建您創建source
的/tmp
文件。您可能需要先對其進行編輯並
export
在每行前面添加以更好地模擬啟動的環境。