linux - Raspberry Pi OS - at 命令什么都不做
问题描述
我有一个带有 Pi OS 的 Pi 3B+ (PRETTY_NAME="Raspbian GNU/Linux 10 (buster)")
我想在某个时间运行一个脚本,使用 at 命令。
出于测试目的,我制作了一个 test1.sh,以使用 pyautogui 打开 Chromium 浏览器。
该文件位于 /home/pi/test1.sh 并包含以下内容:
#!/usr/bin/python3
import pyautogui
pyautogui.click(67, 20) #click Chromium icon
当在 GUI 中单击以及在终端中键入 ./test1.sh 运行它时,此 .sh 执行良好。
尝试使用 at 命令不起作用并产生以下结果:
pi@raspberrypi:~ $ at 11:50
warning: commands will be executed using /bin/sh
at> ./test1.sh
at> < EOT> (Here is where I type ctrl+D)
job 11 at Fri Nov 5 11:50:00 2021
在指定的时间,什么都没有发生。我知道这一定是我做错了什么,但对于我的生活,我无法弄清楚它是什么。帮助?
编辑:
帖子中缺少 shebang 中的第一个 / ,但文件中没有。
atq 什么都不返回
ps ax 返回下面的文本(为简洁起见)
PID TTY STAT TIME COMMAND
1 ? Ss 0:05 /sbin/init splash
2 ? S 0:00 [kthreadd]
3 ? I< 0:00 [rcu_gp]
date 返回准确的日期和时间
cat /var/mail/pi 返回以下内容:
Subject: Output from your job 11
To: pi@raspberrypi
Message-Id: <E1miwnI-0000tR-83@raspberrypi>
From: pi@raspberrypi
Date: Fri, 05 Nov 2021 11:50:00 +0100
sh: 49: ./test1.sh: not found
From pi@raspberrypi Fri Nov 05 12:05:00 2021
Return-path: <pi@raspberrypi>
Envelope-to: pi@raspberrypi
Delivery-date: Fri, 05 Nov 2021 12:05:00 +0100
Received: from pi by raspberrypi with local (Exim 4.92)
(envelope-from <pi@raspberrypi>)
id 1mix1o-0000xA-KG
for pi@raspberrypi; Fri, 05 Nov 2021 12:05:00 +0100
这表明该文件不存在,但是当我键入 ls 时,它会清楚地显示出来。
使用完整路径 /home/pi/test1.sh 也不会返回任何内容,但收到的邮件指出以下内容:
Subject: Output from your job 13
To: pi@raspberrypi
Message-Id: <E1mjHmv-0000NT-4B@raspberrypi>
From: pi@raspberrypi
Date: Sat, 06 Nov 2021 10:15:01 +0100
Traceback (most recent call last):
File "/home/pi/test1.sh", line 3, in <module>
import pyautogui
File "/home/pi/.local/lib/python3.7/site-packages/pyautogui/__init__.py", line 249, in <module>
import mouseinfo
File "/home/pi/.local/lib/python3.7/site-packages/mouseinfo/__init__.py", line 223, in <module>
_display = Display(os.environ['DISPLAY'])
File "/usr/lib/python3.7/os.py", line 678, in __getitem__
raise KeyError(key) from None
KeyError: 'DISPLAY'
解决方案
正如@linuxfan 在评论中指出的那样:
未设置 DISPLAY 变量。
通过执行以下操作解决了问题:
pi@raspberrypi:~ $ at now + 1 minute
warning: commands will be executed using /bin/sh
at> export DISPLAY=:0.0
at> /home/pi/test1.sh
at> <EOT>
job 17 at Sun Nov 7 10:55:00 2021
推荐阅读
- azure - 查询 MCAS Unsanctioned 申请 | Microsoft Live(IT 服务)
- solr - Solr-8.9.0 对名称字段的模糊搜索
- sql - Oracle 问题将工作 SQL 移植到过程
- javascript - 如何将 ref 属性传递给情感 js 中的组件?
- php - Laravel 8 站点在 localhost 上运行良好,但在共享托管服务器上运行良好
- c++ - 为什么 constexpr 方法可以正确返回在执行过程中值发生变化的类成员?
- couchbase - CouchBase 同步网关同步
- firebase - 页面加载时未调用 Flutter Getx Controller onInit 方法
- c# - 罗马尼亚语字符不适用于 ITextSharp
- swift - iPhone 6(非视网膜)与 iPhone 11(视网膜显示)上的 iPhone 彩色显示问题