Предупреждение при выполнении концов процесса

Сжатие использует в своих интересах то, что существуют шаблоны в данных, которые могут быть оптимизированы и обозначены по-другому. Это приводит к решительному сокращению количества шаблонов (так как, если шаблон оставили затем, исходное сжатие могло бы просто оптимизировать его вместо того, чтобы оставить его в заключительном файле), что означает, что другой раунд сжатия не может выполнить гораздо дальше сокращение размера.

22
13.04.2017, 15:36
6 ответов

Я написал process_watcher.py

process_watcher --pid 1234 --to me@gmail.com

В настоящее время тело письма выглядит так:

PID 18851: / usr / lib / libreoffice / program /soffice.bin --writer --splash-pipe = 5
Начато: Чт, 10 марта, 18:33:37 Завершено: Чт, 10 марта, 18:34:26 (продолжительность 0:00: 49)
Память (текущая / пиковая) - Резидентная: 155 280/155 304 КБ Виртуальная: 1,166 968/1 1888 216 КБ

[+] indicates the argument may be specified multiple times, for example:
 process-watcher -p 1234 -p 4258 -c myapp -c "exec\d+" --to person1@domain.com --to person2@someplace.com

optional arguments:
  -h, --help            show this help message and exit
  -p PID, --pid PID     process ID(s) to watch [+]
  -c COMMAND_PATTERN, --command COMMAND_PATTERN
                        watch all processes matching the command name. (RegEx pattern) [+]
  -w, --watch-new       watch for new processes that match --command. (run forever)
  --to EMAIL_ADDRESS    email address to send to [+]
  -n, --notify          send DBUS Desktop notification
  -i SECONDS, --interval SECONDS
                        how often to check on processes. (default: 15.0 seconds)
  -q, --quiet           don't print anything to stdout

Если вам нужны какие-либо улучшения, создайте проблему с GitHub.

10
27.01.2020, 19:42

Что-то вроде этого?

(while kill -0 $pid; do sleep 1; done) && echo "finished"

Замените $ pid на идентификатор процесса, а echo "finished" на то, что вы хотите сделать, когда процесс завершится.

Например:

(while kill -0 $pid; do sleep 1; done) && mail ...
23
27.01.2020, 19:42

Если у вас нет пида, то он будет выполняться до тех пор, пока не будут завершены все экземпляры ffmpeg:

(while pidof ffmpeg | grep -q "[0-9]?"; do sleep 1; done) && echo "finished"
4
27.01.2020, 19:42

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

  1. Удалить большую папку и BEEP:

     RM -RV ~ / TMP && BEEP
     
  2. Компилируйте ядро ​​и отправьте электронное письмо:

     Make && Mail-as - Compilation выполняется «(скрыто)
     

Это хороший способ решить вашу проблему? В другом случае вы можете добавить || и третью команду в случае сбоя.

Кроме того, скрипт оболочки может получить статус выхода ( $? ) вашей команды, а с , если / else и петли, которые вы можете сделать все ты хочешь.

5
27.01.2020, 19:42

Я сделал приложение, которое отправляет уведомление на ваш телефон Android, когда процесс завершается, поэтому вам не нужно быть привязанным к компьютеру.

Установите, затем добавьте ;notifier.shв конец вашей команды.

Например, если бы ваша команда была make install, вы бы сделали свою команду:

make install; notifier.sh

https://notifier.sh

https://play.google.com/store/apps/details?id=sh.notifier

0
27.01.2020, 19:42

Если вы не хотите использовать опцию опроса или внешний скрипт, и вы уже запустили -длительный процесс, вы можете приостановить его, нажав CTRL+Z (отправляет сигнал SIGTSTP )а затем возобновите его с помощьюfg(переводит процесс на передний план ).

Например:

my_command  # long running command
# press CTRL+Z to pause
fg ; notify-send 'finished'
0
27.01.2020, 19:42

Теги

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