Linux 运行bash脚本,在启动时自动打开终端
我必须在启动时运行bash脚本,打开两个终端并在每个终端中运行一些命令 test.sh(我的bash文件)Linux 运行bash脚本,在启动时自动打开终端,linux,bash,shell,boot,upstart,Linux,Bash,Shell,Boot,Upstart,我必须在启动时运行bash脚本,打开两个终端并在每个终端中运行一些命令 test.sh(我的bash文件) 我在/etc/init/内部创建了一个testjob.conf: testjob.conf(Upstart配置文件) 现在,问题是testjob.conf无法在启动时运行test.sh文件(或者运行它但不创建文件夹test\u文件夹)。如果我从testjob.conf中删除最后一行:exec bash/home/naman/Desktop/test.sh,一切正常,当我执行cat/var/
/etc/init/
内部创建了一个testjob.conf
:testjob.conf
无法在启动时运行test.sh
文件(或者运行它但不创建文件夹test\u文件夹
)。如果我从testjob.conf中删除最后一行:exec bash/home/naman/Desktop/test.sh
,一切正常,当我执行cat/var/log/testjob.log
时,我会得到正确的输出,但如果最后一行在那里,cat/var/log/testjob.log
不会给出最新的输出
bash/home/naman/Desktop/test.sh
更新/etc/rc.local
,但这似乎也没有在启动时运行test.sh
脚本系统->首选项->启动应用程序
,因为我没有任何监视器,因此桌面应用程序无法运行。(我在没有显示器的单板计算机上运行它)
有人知道这里的问题是什么吗?为什么test.sh脚本在启动时不能正常运行
提前感谢。纳曼丛马在这方面非常接近。Sysvinit用于系统级守护进程。它对用户没有任何概念。这意味着它无法与您的窗口系统(或gnome)交互 进一步:如果没有监视器,您希望gnome终端做什么?gnome终端会在监视器上打开一个终端:你看不到 你应该注意的是把你的命令(日期等)放在/etc/rc.local中,而不是试图把它们放在不同的终端或任何东西中。只需在那里运行命令。您“没有监视器”,因此“桌面应用程序不运行”,并且您想要运行桌面应用程序
gnome terminal
,更不用说在sysvinit期间了???
#!/bin/bash
sleep 10
gnome-terminal --tab-with-profile="Default" -e 'bash -c '\''export TAB=1; mkdir /home/naman/Desktop/test_folder'\'
description "A test job file for experimenting with Upstart"
author "Naman Kumar"
start on runlevel [2345]
exec echo Test Job ran at `date` >> /var/log/testjob.log
exec bash /home/naman/Desktop/test.sh