Ваш regexp m/dtllst $myNode | $myNode/
будет соответствовать (в особенности) любому возникновению $myNode
. Конструкцией, psg dtllst | grep $myNode
возвратит что-то, что соответствует $myNode
, так Вы regexp всегда соответствует.
Если Вы не можете последовать совету и использованию других людей pgrep
или ps ... | grep
или варианты этого, Вы могли также:
набор "$checkProc = psg dtllst | grep 'dtllst $myNode'
;" и затем просто тест, если $checkProc
непусто, или
набор "$checkProc = psg dtllst
;" и затем соответствуйте ему против m/dtllst $myNode/
Используйте Proc:: модуль ProcessTable CPAN и просто ищет запись $p
таким образом, что $p->cmdline =~ m/dtllst $myNode/
Как lynxlynxlynx указывает, если автор программы не делает условия для него, Вы не можете изменить многословие, в то время как программа работает, но можно помешать ему печатать к терминалу в случае, если это - горлышко бутылки.
Чтобы сделать это, закройте терминал после сообщения оболочки не отправить SIGHUP. Большинство оболочек отправит SIGHUP в любые задания, которые все еще работают, когда Вы пытаетесь выйти. Можно сказать оболочке не делать это. Существуют различные способы сделать это; самое простое, вероятно, с disown
.
Если Вы еще не имеете, приостанавливаете задание с ctrl+z
, затем заставьте его работать снова в фоновом режиме с bg
, затем выполненный disown
. Оболочка больше не отслеживает этот процесс как задание, таким образом, это не отправит SIGHUP при выходе.
Если Вы уже поместили программу в backgound, то, если будут какие-либо другие фоновые задания, которые были запущены после него, то Вам будет нужен jobspec программы, которой Вы интересуетесь использовать в качестве параметра для передачи bg
и disown
.
Возможно, существует взлом, который позволил бы изменять дескриптор выходного файла задания на /dev/null
, но я не знаю это. В любом случае программа все еще записала бы все те строки, они будут просто отброшены. Это поэтому только помогло бы, если дисплей терминала является узким местом, не поколением сообщения.
/dev/null
на лету. (2), Как я могу сказать, являются ли дисплей терминала или поколение сообщения узким местом к рабочей скорости программы?
– StackExchange for All
07.08.2012, 15:10
bg 1
, и затем программа продолжает работать и выводы снова в терминале. Я не знаю, как я могу ввести, "отрицают 1" снова, когда это - вывод к терминалу. Ctrl+Z не работает на программы, работающие в фоне. – StackExchange for All 07.08.2012, 16:15fg
слепой, возврат хита, затем Ctrl-Z хита. Это приносит программу в fg и затем приостанавливает его снова (приводящий Вам назад полный круг). – ffledgling 14.10.2015, 14:47