Убить работу в Bash Script - PullRequest
       23

Убить работу в Bash Script

0 голосов
/ 06 апреля 2019

У меня есть скрипт bash, который вызывает несколько команд, включая команду TOP.Мой вопрос заключается в том, как программно уничтожить команду TOP и передать управление обратно сценарию, чтобы он продолжал работать?

Спасибо

Ответы [ 3 ]

2 голосов
/ 06 апреля 2019

Используйте параметр итерации -n number в сочетании с -d delay.

top -d2 -n10 

... выполнит работу примерно за 18 секунд плюс еще немного (время между первым и последним = 9 * 2 с + время выполнения).

1 голос
/ 06 апреля 2019

Если вы хотите, чтобы сценарий запускался top на переднем плане только в течение некоторого времени, используйте команду timeout:

timeout --foreground 30s top

, чтобы запустить вершину в течение 30 секунд.

1 голос
/ 06 апреля 2019

Не уверен, зачем вы запускаете top в первую очередь из скрипта, если хотите убить его без моментов взаимодействия с пользователем позже.Возможно, было бы достаточно запустить top и отсоединить его, используя оператор &, чтобы ваш скрипт не блокировался:

#!/bin/bash

echo "before"
top &
echo "after"
...