![为什么我的打开终端的启动脚本不起作用?](https://linux22.com/image/886198/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E7%9A%84%E6%89%93%E5%BC%80%E7%BB%88%E7%AB%AF%E7%9A%84%E5%90%AF%E5%8A%A8%E8%84%9A%E6%9C%AC%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8%EF%BC%9F.png)
只是为了玩弄脚本制作,我制作了一个(我相信?)应该在启动时打开一个终端的脚本:
#!/bin/bash
#start terminal at startup
#/usr/bin/gnome-terminal
我将其放在 /etc/init.d 目录中,然后运行此
update-rc.d myscript defaults
但当我重启电脑时什么都没发生。为什么?
答案1
简短回答:
gnome-terminal
是一个 GUI 应用程序。因此它只能运行作为用户。在您尝试运行它时,还没有用户登录。请将(运行-)脚本的命令放入启动应用程序中。
你不需要需要脚本根本但是,您可以将命令直接添加到启动应用程序中。
gnome-terminal
一旦您登录它就会开始。
除此之外,你的运行命令gnome-terminal
不正确。应该是/usr/bin/gnome-terminal
(正如@steeldriver 所说,谢谢),或者,因为它在$PATH
,所以简单地说gnome-terminal
。
答案2
脚本中的主要错误在于,在第三个语句中,您实际上注释掉了打开终端的命令。请删除“#“来自第三条语句。同时,您可以简单地使用gnome 终端激活它,但它应该以用户身份运行。这意味着将它添加到 update-rc 也行不通。如果你更倾向于使用终端方式,那么你可以在 crontab 中添加脚本,然后将其添加到用户的 crontab 文件中重启约束。这将在启动时运行您的脚本。因此我总结如下:
您的文件名为 script.sh :
#!/bin/bash
#start terminal at startup
gnome-terminal
使用以下命令使用户可执行脚本。
chmod u+x /path/to/script.sh
现在打开终端并编辑用户的 crontab,如下所示:
crontab -e -u username
进行相应的更改后,将以下语句添加到文件底部。
@reboot /path/to/script.sh
现在重启。就这样。