如何在特定时间重复在WSL上运行程序?

时间:2020-01-17 22:49:37

标签: ubuntu cron windows-subsystem-for-linux

我试图每24小时运行两个程序。一个(程序1)应该在00:00开始,另一个(程序2)应该在23:59开始。我尝试如下使用crontab:

00 00 * * * /home/user/DESKTOP/program1
59 23 * * * /home/user/DESKTOP/program2

这两个程序均已编译并保存在服务器上的同一目录中。我什至试图运行一个基本的hello world c程序,但它仍然无法正常工作。我发现的大多数示例都使用bash脚本,如果我应该创建bash文件而不是运行可执行文件,则不会使用。

1 个答案:

答案 0 :(得分:0)

首先,我会尝试一个非常简单的测试,比您尝试过的测试更简单。

运行crontab -e,然后在列表底部输入* * * * * touch ~/crontab.touched

这将每分钟触摸您主目录中的一个文件,只需转到用户目录cd ~,然后转到ls -al以查看此文件上的时间戳,它应该始终是最新的。

此测试将向您显示任务实际上正在运行。

您还可以运行crontab -l列出所有正在运行的cron任务。

我正在运行WSL 1,并且不需要更改任何文件/文件夹/用户组的权限就可以运行该程序。

一旦您运行了简单的案例,我就会考虑在很小的一段时间内运行程序以进行测试,例如每5分钟左右*/5 * * * * /home/user/DESKTOP/program1

我的最后一个问题是关于program1的路径,它看起来不正确。在WSL中,转到包含要运行的程序的目录,然后键入pwd,这将向您显示在crontab表达式中需要使用的目录。基本上,如果您可以在主目录cd ~中运行该程序,那么它应该在cron中运行。

让我知道你过得如何。