sudo ~/.dropbox-dist/dropboxd 无法在 cron 作业上运行

sudo ~/.dropbox-dist/dropboxd 无法在 cron 作业上运行

我已经直接在命令行中使用了该命令,并且运行良好。

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

另请注意,无论哪种情况,rootuser应该对脚本具有执行权限。

答案3

我通过更改 cron 命令来修复此问题,如下所示:

@reboot ~/.dropbox-dist/dropboxd

但这还不够,我应该运行另一个命令:

($HOME/.dropbox-dist/dropboxd &)&

之后我运行这个命令进行测试

sudo ~/.dropbox-dist/dropboxd

我将看到此消息,表示 Dropbox 正在运行,并且所有更改将立即与 Dropbox 帐户同步。

Dropbox 的另一个实例(25068)正在运行!

相关内容