当我的虚拟机重新启动时,我一直试图运行一个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** ---
1条答案
按热度按时间jxct1oxe1#
"我终于找到了答案"
我已经意识到,使用
rc.local
并不理想,因为它可能会运行得太快,无法挂载闪存盘。因此,请改用--〉1.在您的终端上,导航到
.config/autostart
目录。.config/autostart
可能位于您的主目录中:1.使用您喜欢的文本编辑器打开(新的)
gnome-terminal.desktop
文件。1.编辑gnome-terminal.desktop文件,将
Exec=gnome-terminal
所在的行更改为Exec=gnome-terminal --command "path/to/your/shell/script"
1.保存并退出
:wq