LINUX.ORG.RU

Послать фоновому процессу нажатие клавиши q


0

0

Уважаемые!
Подскажите, плиз, как можно послать фоновому процессу нажатие клавиши?
Для корректного завершения программы надо ей посылать q (quit), просто
убивать не совсем хорошо, она буффер из памяти не дописывает в файл.

Подробнее:
Имеется скрипт save-grep:
#!/bin/bash
filename="/`date +%y%m%d-%H%M%S`.txt"
echo $filename > /lock
echo "Write trace file $filename"
echo "Press q to stop"
/mnt/dom/dect/g1st -d | grep -e 0x3 -e 'channel number' -e \(Orig\) -e ALERTING \
-e SETUP -e RELEASE -e 'I frame' -e CONNECT -e DATE -e \(Dest\) -e PROCEEDING \
-e '[0-9][0-9]\.[0-9][0-9]\.[0-9][0-9] [0-9][0-9]:[0-9][0-9]' >> $filename

Этот скрипт я запускаю из консоли в фон:
/mnt/dom/dect/save-grep &
Далее командой
echo $! > /save-grep.pid
записываю номер ее процесса в файл. Сессия по ssh с этим компьютером
на этом завершается.
По истечении суток в новой сессии надо корректно завершить этот
процесс посылкой ему нажатия клавиши q. Как это можно сделать ?




anonymous

и ни один сигнал корректно не обрабатывает?

anonymous
()

Нет, только вываливается с утерей буфера. А там 4 кБ - для лога многовато :).

alexey_p
()

q новая сессия не пошлет, потому как управляющий терминал утерян. если так надо сохранить терминал то надо пускать скрипт внутри screen и на следующем коннекте в этот же screen вваливаться.

anonymous
()

Спасибо, покопаю в эту сторону.

P.S. screen для меня открытие. Вот уж действительно, "Век живи, век RTFM, все равно LMD" :).

alexey_p
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.