启动脚本未执行

启动脚本未执行

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..."

当我使用手动运行文件时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)

并且仅具有@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)

我认为丢弃输出并不坏,对吗?

答案1

root操作触摸板设置的命令需要已在运行的 X 服务器用户会话,但对于启动期间或Ubuntu 上的用户来说并非如此。

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

sh -c 'sleep 10; synclient VertScrollDelta=-100; synclient CoastingFriction=35; synclient MinSpeed=0.05; synclient MaxSpeed=0.7'

并将其作为启动应用程序运行,即像这个例子...sleep 10可能需要调用该函数来允许会话完全加载十秒钟(如果你的桌面加载速度更快,你可以将其缩短至三秒sleep 3) 才能运行命令。

答案2

您以 root 用户身份执行命令,而不是以常规用户帐户身份执行。这可能会导致配置为 root 用户执行。尝试以 root 用户身份使用触摸板,它可能会起作用。或者更改 crontab 中的行以反映并使用常规用户帐户。例如: @reboot [insertyourordinaryusernamehere] sh /root/startup.sh >/dev/null 2>&1

相关内容