我设置 crontab 在启动时执行 bash 脚本
@reboot bash /home/user/linuxconfig/startup.sh
在每次启动期间,我看到 bash 被执行,因为它创建了虚拟文件。
#!/usr/bin/bash
touch /home/user/linuxconfig/test.txt
chromium-browser https://open.spotify.com/
touch /home/user/linuxconfig/test2.txt
文件已创建,但 chromium 无法打开。 当我在终端启动后执行脚本时,它会打开 chromium。
我做错了什么?
编辑: 我尝试直接从 crontab 打开 chromium,这样我就不必处理 bash 部分:
@reboot /usr/bin/chromium-browser --no-sandbox >> /home/user/linuxconfig/log/startupCrontab.log 2>&1
日志也给了我:
[856:856:0427/103429.042950:ERROR:ozone_platform_x11.cc(243)] Missing X server or $DISPLAY [856:856:0427/103429.043040:ERROR:env.cc(257)] The platform failed to initialize. Exiting.
所以我尝试设置显示:
@reboot export DISPLAY=:0
@reboot /usr/bin/chromium-browser --no-sandbox >> /home/user/linuxconfig/log/startupCrontab.log 2>&1
但是结果是一样的,日志还是说$DISPLAY或者X服务器丢失。
我开始想知道是否可以在 crontab 调用期间启动图形应用程序。由于在此步骤中缺少 DISPLAY,但是当我在启动后启动 chromium 时,它工作正常并且 $DISPLAY 自动设置为 :0
Cron 不是自动启动图形桌面应用程序的适当机制。您可以通过创建桌面应用程序自动启动配置文件
~/.config/autostart/chromium.desktop
,在桌面环境启动期间自动启动 Chromium 浏览器,如下所示:
[Desktop Entry]
Type=Application
Name=Chromium
Exec=chromium-browser
Comment=Start Chromium when logging into the desktop