我有一个运行 shell 脚本的 crontab。该 shell 脚本包含创建 tmux 和启动一些命令的代码。
@reboot /home/netforce/scripts/script.sh > /dev/null
脚本内容如下:
#!/bin/bash
sess=erp
if [ "`tmux ls | grep $sess`" != "" ] ; then
echo "session $sess already running"
exit 1
fi
echo "starting session"
tmux new-session -d -s erp
tmux rename-window 'server'
tmux send-keys 'supervise ~/svc/netforce' 'C-m'
sleep 2
一切正常,tmux 已创建并且软件正在运行。
但正在运行
$ ./run.py
它应该运行为
netforce@netforce-computer:~/netforce$ ./run.py
为什么我要按上述方式运行?它对于主运行命令来说运行正常,但是。我有多个使用 shell 脚本的窗口(例如用于打印的窗口)(但它不起作用)
当我手动运行时,script.sh
它运行完美。
通过一些研究,我得知 bash 配置文件未加载。但我不知道如何使用我的 bash 环境(.bashrc?我想)启动它。
非常感谢任何建议。
更新
我更新的 crontab 是
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
@reboot sleep 60 && /home/netforce/asus_scripts/start-erp.sh > /dev/null
#* */4 * * * /home/netforce/backup/backup_db.py
一些 python 文件可以运行,但有些由于 bash 而出现问题。当我echo $0
收到-bash
。这不是我的正常 bash。
当我打开一个新终端并输入时,echo $0
我收到-bash
(这是正确的)。并且python文件正常工作。任何建议都非常感谢。