Сценарий оболочки, чтобы начать новый процесс, но закрыть окно терминала

Я новичок в сценариях оболочки. Я пишу сценарий запуска, который принимает аргумент и запускает процесс на основе значения аргумента.

Пример: я хочу запустить мою groovyConsole, расположенную внутри некоторого каталога, используя скрипт запуска, как это.

sh Starter.sh groovy 

Внутри скрипта это логика

if [ $1 = "groovy" ] 
then
    cd Works/Groovy/groovy-1.8.6/bin
    ./groovyConsole
fi

Это действительно запускает процесс, но я вижу, что этот процесс связан с окном терминала. Если я закрою окно терминала, процесс будет убит (очевидно). Поэтому я хочу знать, есть ли способ, при котором приведенная выше команда выполнит сценарий и запустит процесс, но закроет окно терминала?

4
задан 7 May 2012 в 19:48

4 ответа

Можно отсоединить его от текущего процесса с nohup , и &

if [ $1 = "groovy" ] 
then
    cd Works/Groovy/groovy-1.8.6/bin
    nohup ./groovyConsole & 
fi

Это оставило бы команду groovyConsole работающий, пока Вы не уничтожаете его. Это не закрывает окно терминала, хотя покупают Вас, делают это как это...

sh Starter.sh groovy && exit
5
ответ дан 7 May 2012 в 19:48

Я не эксперт, как когда-либо это должно работать.

if [ $1 = "groovy" ] 
then
    Works/Groovy/groovy-1.8.6/bin/groovyConsole &
    exit
fi

Объяснение:

  1. Никакая потребность к CD, просто выполняет его непосредственно с полным путем.
  2. & запускают приложения в фоне
  3. , выход для получения выходит из терминала
2
ответ дан 7 May 2012 в 19:48

попробуйте изменение./groovyConsole к./groovyConsole & и добавьте выход после строки

1
ответ дан 7 May 2012 в 19:48

Для сценария оболочки для закрытия его родительского процесса это должно уничтожить его явно. Это также очень плохая практика, чтобы сделать это (потому что в будущем Вы могли бы выполнять этот сценарий в среде кроме того, что Вы ожидаете), но если Вы действительно хотите, можно попробовать:

#!/bin/sh
if [ $1 = "groovy" ] 
then
    cd Works/Groovy/groovy-1.8.6/bin
    nohup ./groovyConsole &
    kill $PPID
fi
1
ответ дан 7 May 2012 в 19:48

Другие вопросы по тегам:

Похожие вопросы: