Запуск скрипта bash, который автоматически открывает терминал при загрузке

Мне нужно запустить скрипт bash при загрузке, который открывает пару терминалов и запускает какую-то команду в каждом терминале.

test.sh (мой файл bash)

#!/bin/bash

sleep 10

gnome-terminal --tab-with-profile="Default" -e 'bash -c '\''export TAB=1; mkdir /home/naman/Desktop/test_folder'\'  
  1. Я создал testjob.conf внутри /etc/init/ :

testjob.conf (файл конфигурации Upstart)

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

Теперь проблема в том, что testjob.conf не может запустить файл test.sh при загрузке (или запускает его, но не создает папку test_folder). Если я удалю последнюю строку из testjob.conf : exec bash /home/naman/Desktop/test.sh, все будет работать, и когда я сделаю cat /var/log/testjob.log, я получу правильный вывод, но если последняя строка есть, cat /var/log/testjob.log не даст последний результат.

  1. Я также пытался обновить /etc/rc.local с помощью: bash /home/naman/Desktop/test.sh, но это также не запускает сценарий test.sh при загрузке.

Я не уверен, запускают ли они сценарии, но не могут создать папку или даже не могут запустить сценарий при загрузке.

Примечание. Я не могу использовать System -> Preferences -> Startup Applications, потому что у меня нет монитора, поэтому настольное приложение не запускается. (Я запускаю его на одноплатном компьютере без монитора).

Кто-нибудь знает, в чем здесь проблема и почему скрипт test.sh не работает должным образом при загрузке?

Заранее спасибо.
Наман


person Naman91    schedule 15.09.2015    source источник
comment
У вас нет монитора, поэтому десктопное приложение не запускается, а вы хотите запустить gnome-terminal, десктопное приложение, не говоря уже во время sysvinit???   -  person Cong Ma    schedule 16.09.2015


Ответы (1)


Конг Ма довольно близок к этому. Sysvinit предназначен для демонов системного уровня. Это не имеет никакого отношения к пользователям. Это означает, что у него нет способа взаимодействовать с вашей оконной системой (или гномом).

Далее: без монитора, что вы ожидаете от gnome-терминала? gnome-terminal откроет терминал на мониторе: который вы не видите.

На что вам следует обратить внимание, так это на то, чтобы взять ваши команды (дата и т. д.) и поместить их в /etc/rc.local, а не пытаться перенести их на другой терминал или что-то еще. Просто буквально запустите команды там.

person Marc Young    schedule 16.09.2015