【发布时间】:2021-10-06 17:04:06
【问题描述】:
我的目标是使用at 命令在 Linux 中安排一个简单的 python 脚本的执行。
问题:我的python脚本没有在指定时间执行。没有任何反应,没有错误消息。
我有以下简单的helloworld 文件:
#!/usr/bin/python3
print("hello world")
要安排我键入的作业:
at now + 1 min
我提供我要执行的文件:
./helloworld
输入atq 我看到工作安排得很好。
但它只是发生了......什么都没有。
- 我在 Kali Linux 上工作
- 我已向 root 用户授予该文件的执行权限
- 我可以从命令行运行
helloworld文件 - root 用户有权运行命令(
/etc/at.deny中未列出) - 我可以安排工作
echo "hello world" > message.txt。效果很好。
我不确定的:
- shebang 线路有问题吗?
- 我检查了
/usr/bin/:python3在那里并链接到python3.9。
【问题讨论】:
-
程序实际上没有运行的迹象是什么?传统上,来自 at 工作的输出通过电子邮件发送给工作的所有者,但在当今的 Linux 安装中,这种机制往往是开箱即用的(尽管我不熟悉 Kali)。
-
atd守护进程是否正在运行? -
@KamilCuk 是的,atd 正在运行
-
@TurePålsson 好的,你可能是对的......我希望我执行的 python 文件的输出会打印到屏幕上。我错了吗?我可以从命令行运行 python shell 脚本并将输出打印到屏幕上。我假设我也可以安排执行相同的 shell 脚本?如何检查 at 命令是否在您之后起作用?
-
正如我所说,传统上,来自 at 作业的输出已通过邮件发送,因为无法保证在作业运行时用户仍处于登录状态。正如您尝试使用
echo hello >file.txt一样,您可以执行./helloworld >file.txt并查看是否创建了file.txt。
标签: python python-3.x scheduled-tasks