启动脚本不执行

Use*_*986 3 startup root scripts cron

Ubuntu 版本:22.04.1 LTS 嘿!我正在尝试startup.sh/root/startup.sh启动时运行。这是文件的内容:

synclient VertScrollDelta=-100
synclient CoastingFriction=35
synclient MinSpeed=0.05
synclient MaxSpeed=0.7
echo "All went according to plan..."
Run Code Online (Sandbox Code Playgroud)

当我使用手动运行文件时sudo /root/startup.sh,一切都会按计划进行,但是在我在键入以下内容时打开的内容中写入以下行之后crontab -e

@reboot root sh /root/startup.sh >/dev/null 2>&1

并重新启动我的计算机,什么也没发生。我尝试在这里使用这个答案,并评论你必须在 ubuntu 上做什么。

有人知道如何解决这个问题吗?

日志:

Jan 17 11:04:10 sexy-cat-girl-computer CRON[1015]: (originalusernamelol) CMD (root sh /root/startup.sh >/dev/null 2>&1)
Run Code Online (Sandbox Code Playgroud)

并且只有@reboot root sh /root/startup.sh

Jan 17 11:01:34 sexy-cat-girl-computer CRON[1026]: (originalusernamelol) CMD (root sh /root/startup.sh)
Jan 17 11:01:34 sexy-cat-girl-computer CRON[976]: (CRON) info (No MTA installed, discarding output)
Run Code Online (Sandbox Code Playgroud)

我认为丢弃输出也不错,对吧?

Raf*_*ffa 5

操作触摸板设置的命令需要已运行的 X 服务器用户会话,但启动期间和rootUbuntu 上的用户都不是这种情况。

运行此类脚本的最佳方法是将其保存在您的常规用户下,例如在您的主目录中,并将其作为启动应用程序运行...或者您可以将所有命令嵌套在命令字符串中,sh如下所示:

sh -c 'sleep 10; synclient VertScrollDelta=-100; synclient CoastingFriction=35; synclient MinSpeed=0.05; synclient MaxSpeed=0.7'
Run Code Online (Sandbox Code Playgroud)

并将其作为启动应用程序运行,即像这个示例一样......在命令运行之前,sleep 10可能需要调用以允许会话完全加载十秒(如果您的桌面加载速度更快,则可以缩短它,例如三秒sleep 3) 。