cronsun
cronsun copied to clipboard
exec: "cd": executable file not found in $PATH
Please answer these questions before submitting your issue. Thanks! 在你提交 issue 前,请先回答以下问题,谢谢!
- What version of Go and cronsun version are you using? 你用的是哪个版本的 Go 和 哪个版本的 cronsun?
0.3.5版本预编译cronsun
- What operating system and processor architecture are you using (
go env
)? 你用的是哪个操作系统,什么架构的?
Debian 8, X86
- What did you do? If possible, provide a recipe for reproducing the error. A complete runnable program is good. 你做了什么,遇到了什么问题?尽可能描述清楚问题,最好把操作步骤写下来,按这些步骤操作后能重现你的问题。
定时执行如下命令
cd ~/project/test && ./test.py
- What did you expect to see? 你期望得到什么样的结果?
Python程序正常运行
- What did you see instead? 现在你得到的结果是什么样的?
报错:
exec: "cd": executable file not found in $PATH
@kingname 虽然cd是bash的内置命令,但是比如centos6是没有/usr/bin/cd这个可执行命令哦,centos7就有,你可以看一下 cat /usr/bin/cd #!/bin/sh builtin cd "$@" 所以,你只需要创建这个可执行文件就可以啦,记得+x哦
但是我再服务器上直接执行cd是可以的。而且我之前一直使用crontab执行定时任务都没有问题。是昨天开始才换成cronsun的。要是有问题,应该早就暴露出来了才对。
@kingname 内置命令嘛,你直接执行当然没问题,你看,提示这么明显,环境变量没有cd命令,你不妨先试试,毕竟这个坑我走过。
好的,我测试一下。感谢你的帮助。
还有一个办法,你可以把你需要执行的命令 cd ~/project/test && ./test.py 写到一个脚本里,然后在任务脚本里写上 /bin/bash /tmp/test.sh
最好不要这样,我有几百个定时任务,每一个都写shell脚本太麻烦了
@kingname 虽然cd是bash的内置命令,但是比如centos6是没有/usr/bin/cd这个可执行命令哦,centos7就有,你可以看一下 cat /usr/bin/cd #!/bin/sh builtin cd "$@" 所以,你只需要创建这个可执行文件就可以啦,记得+x哦
你这个方法不行,放在文件里面会提示 builtin不是一个命令
@kingname 虽然cd是bash的内置命令,但是比如centos6是没有/usr/bin/cd这个可执行命令哦,centos7就有,你可以看一下 cat /usr/bin/cd #!/bin/sh builtin cd "$@" 所以,你只需要创建这个可执行文件就可以啦,记得+x哦
你这个方法不行,放在文件里面会提示 builtin不是一个命令
root@vultr:~# whereis cd cd: root@vultr:/opt# vi /usr/bin/cd #!/bin/sh builtin cd "$@" root@vultr:/opt# whereis cd cd: /usr/bin/cd root@vultr:/opt# builtin root@vultr:/opt# echo $? 0 root@vultr:/opt# cat /etc/issue Debian GNU/Linux 8 \n \l
成功了,非常感谢你的帮助
@kingname 虽然cd是bash的内置命令,但是比如centos6是没有/usr/bin/cd这个可执行命令哦,centos7就有,你可以看一下 cat /usr/bin/cd #!/bin/sh builtin cd "$@" 所以,你只需要创建这个可执行文件就可以啦,记得+x哦
你这个方法不行,放在文件里面会提示 builtin不是一个命令
root@vultr:~# whereis cd cd: root@vultr:/opt# vi /usr/bin/cd #!/bin/sh builtin cd "$@" root@vultr:/opt# whereis cd cd: /usr/bin/cd root@vultr:/opt# builtin root@vultr:/opt# echo $? 0 root@vultr:/opt# cat /etc/issue Debian GNU/Linux 8 \n \l