我已经直接在命令行中使用了该命令,并且运行良好。
sudo ~/.dropbox-dist/dropboxd
但是当我将其设置为每分钟使用 cronjob 运行时,什么也没有发生。我的 crontab 文件
# m h dom mon dow command
* * * * * sudo ~/.dropbox-dist/dropboxd
@hourly wget -qO /dev/null https://mysite.com/cron/KpFh734nRJIBMtAAH1-32ajb8Rv23A-l0pBVg$
怎么了?
答案1
一般来说,crontab
不知道环境变量。您应该指出完整路径。在此示例中,它可能是:
/home/youruser/.dropbox-dist/dropboxd
sudo
可能需要密码,因此可能无法实现 cron 作业中的预期效果。这可能只是一个例子,但我对您需要每分钟运行 Dropbox 守护进程这一事实感到困惑。
答案2
不应该是sudo
。应该是用户名。并且不要使用~
,使用绝对路径。例如
* * * * * root /home/user/.dropbox-dist/dropboxd
或者
* * * * * user /home/user/.dropbox-dist/dropboxd
另请注意,无论哪种情况,root
都user
应该对脚本具有执行权限。
答案3
我通过更改 cron 命令来修复此问题,如下所示:
@reboot ~/.dropbox-dist/dropboxd
但这还不够,我应该运行另一个命令:
($HOME/.dropbox-dist/dropboxd &)&
之后我运行这个命令进行测试
sudo ~/.dropbox-dist/dropboxd
我将看到此消息,表示 Dropbox 正在运行,并且所有更改将立即与 Dropbox 帐户同步。
Dropbox 的另一个实例(25068)正在运行!