Я абсолютный нуб в сценариях оболочки. Я создаю файл .sh для выполнения нескольких команд, но моя проблема в том, что последняя команда является исполняемым файлом, который после исключения остается открытым, а процессы продолжают работать в терминале, пока я не закрою терминал или не нажму Ctrl
+ [ 113] или \
. Я хочу, чтобы убить эти процессы или выйти из терминала, который также будет убивать процесс автоматически при запуске файла .sh. это файл .sh ниже. извините мой вопрос, если это было просто.
#!/usr/bin/env bash
cd ./var/www/testGraduationProject1/public/Hume2Compiler/bin/
export PATH=$PATH:`pwd`
humec -lotsaspace tails.hume;
./tails > hello.txt
// Я попробовал эти две команды, но они просто останавливают загрузку процесса в терминале, но без закрытия терминала или самого процесса.
killall tails
stty -a | grep inter
Ваш вопрос неопределенный, но я предполагаю, что вы спрашиваете, как заставить команду tails
работать в течение N секунд, а затем убить ее?
Если это так, используйте timeout
] (устанавливается по умолчанию в 12.04).
Вот ваш скрипт, использующий timeout
(убрал лишний код, пока я был у него). Он запускается tails
в течение 10 минут (600 секунд), а затем убивает его сигналом TERM.
#!/usr/bin/env bash
PATH=$PATH:$PWD/var/www/testGraduationProject1/public/Hume2Compiler/bin
humec -lotsaspace tails.hume
timeout 600 tails > hello.txt
См. http://mywiki.wooledge.org/BashFAQ/068 для получения дополнительной информации.
Попробуйте это:
Поместите эту строку явно в фон:
./tails > hello.txt&
Затем добавьте
pkill tails