![如何在使用图形桌面登录时运行 Bash 脚本](https://linux22.com/image/1500263/%E5%A6%82%E4%BD%95%E5%9C%A8%E4%BD%BF%E7%94%A8%E5%9B%BE%E5%BD%A2%E6%A1%8C%E9%9D%A2%E7%99%BB%E5%BD%95%E6%97%B6%E8%BF%90%E8%A1%8C%20Bash%20%E8%84%9A%E6%9C%AC.png)
我在 Arch Linux 上运行 MATE 桌面,并且运行了一个 bash 脚本:
- 配置 MATE 以与多台显示器配合使用
- 将电脑连接到互联网
- 改变我的鼠标速度
每次以图形方式登录时,我都必须手动执行此脚本。我如何才能自动执行此操作?我尝试了以下方法:
- 将脚本放入
~/.profile
文件中。什么也没发生。 - 将脚本放入
~/.initrc
文件中。什么也没发生。 - 将脚本放入
~/.xsession
文件中。什么也没发生。 - systemd 无法工作,因为据我所知,它试图过早执行脚本函数。它只能在用户登录后执行,而不是在启动时执行。
编辑:该脚本也需要root权限!
答案1
感谢 @JorneymanGeek 的评论,我能够使用 MATE 自动启动应用程序来执行我需要的操作。我解决了需要输入密码的问题,方法是使用 NOPASSWD visudo
,这使我可以sudo COMMAND
在不使用密码的情况下在命令行上调用。
虽然这通常不是一个好主意,但是它却有效。
答案2
有时(并非总是)您可以使用它~/.xsession
来实现您想要的效果。这通常非常依赖于系统,您可能需要深入了解系统的启动脚本。请参阅这个 Unix 和 Linux Stack Exchange 问题更多细节
答案3
您可以将其放入:
~/.bashrc
(将在所有应用程序初始化后运行)/etc/rc.local
(将在所有服务运行后但在您使用用户名登录之前以 ROOT 身份运行)