На регулярной основе я забываю добавлять && shutdown -h now
в длительный процесс. Есть ли способ добавить shutdown -h now
команду после того, как первая команда была вызвана? Он не предназначен для прерывания текущего процесса. Может быть, можно посмотреть PID?
command-line
bash
shutdown
process
Брубэкер
источник
источник
&&
будет выполнено только в том случае, если предыдущая команда была успешной. Если вы хотите, чтобы он запускался, даже если команда не работает, используйте;
вместо этого.Ответы:
Нет необходимости многократно запускать ps, чтобы вывести список всех процессов и выполнить поиск через grep. Фоновый процесс с помощью Ctrl-Z, затем запустите
Если у вас запущены другие фоновые задания, вам будет дана другая спецификация заданий вместо [1] при нажатии ctrl-z. Если так, используйте это вместо этого.
источник
Вы можете сделать что-то вроде этого, который будет проверять, выполняется ли процесс каждые 5 секунд, и предпринимать соответствующие действия:
Обратите внимание на квадратные скобки в
grep
выражении. Это делается для того, чтобыgrep
процесс не соответствовал, если он попал вps
список. Достаточно окружить любой отдельный символ квадратными скобками.источник
Я делаю это все время.
&&
команду.fg && shutdown -h now
к:Кроме того, вы можете опросить, как предлагается в других ответах, как это:
источник
Если вы знаете pid, вы можете запустить это:
Для запуска без эха от PS сделать это:
И, наконец, запустить его в фоновом режиме без вывода:
Решение Скотта - хорошее, но оно устраняет необходимость
grep
много раз, если вы уже знаете pid. И это гораздо быстрее набрать.: Pисточник
Создайте сценарий оболочки для запуска обоих процессов:
MyShellScript.txt:
После сохранения этого в каталоге, где вы запускаете данный процесс, выполните:
Затем, когда вы захотите выполнить команду, просто наберите,
./MyShellScript.txt
и она сделает то же самое для вас.источник