unix LINUX/BASH -重新启动后,rc.local无法通过bashscript打开终端

k7fdbhmy  于 2022-12-12  发布在  Unix
关注(0)|答案(1)|浏览(168)

当我的虚拟机重新启动时,我一直试图运行一个bashscript。我使用/etc/rc.local来完成这个任务,它执行得很好。但是,一个告诉脚本自动打开终端并运行bashscript的特定行没有执行。

rc.local代码--(重新启动时执行的代码--工作正常)

#!/bin/bash -e
bash /folder/bootcode.sh 
exit 0

bootcode.sh代码--(只执行第1行,不执行第2行)

#! /usr/bin/bash
touch /datadrive/filemadewhenrebooted.txt  # --- **(LINE 1) this line executes perfectly** ---
x-terminal-emulator -e sudo bash /folder/myscript.sh  # --- **(LINE 2) this line does not work** ---

有人能帮我吗?我试过使用sleep命令延迟30秒,这样虚拟机在重新启动后需要时间来调整。但是,这似乎并不奏效。文件“filemadewhenrebooted.txt”立即被创建,就好像脚本不识别sleep命令一样。

#! /usr/bin/bash
    sleep 30 # --- doesn't recognize this line ---
    touch /datadrive/filemadewhenrebooted.txt  # --- **(LINE 1) this line executes perfectly** ---
    x-terminal-emulator -e sudo bash /folder/myscript.sh  # --- **(LINE 2) this line does not work** ---
jxct1oxe

jxct1oxe1#

"我终于找到了答案"
我已经意识到,使用rc.local并不理想,因为它可能会运行得太快,无法挂载闪存盘。因此,请改用--〉
1.在您的终端上,导航到.config/autostart目录。.config/autostart可能位于您的主目录中:

cd ~/.config/autostart

1.使用您喜欢的文本编辑器打开(新的)gnome-terminal.desktop文件。

vi gnome-terminal.desktop

1.编辑gnome-terminal.desktop文件,将Exec=gnome-terminal所在的行更改为Exec=gnome-terminal --command "path/to/your/shell/script"

[Desktop Entry]
    Type=Application
    Exec=gnome-terminal
    Hidden=false
    NoDisplay=false
    X-GNOME-Autostart-enabled=true
    Name[en_NG]=Terminal
    Name=Terminal
    Comment[en_NG]=Start Terminal On Startup
    Comment=Start Terminal On Startup

1.保存并退出:wq

相关问题