|
2.4, Denis (??), 21:02, 06/10/2005 [^] [^^] [^^^] [ответить]
| +1 +/– |
опечатался автор
в строке где tail -f /dev/null а надо так : tail -f /micq.pipe
тогда будет работать
| |
|
3.5, Basil (??), 10:05, 25/11/2005 [^] [^^] [^^^] [ответить]
| +/– |
Нет, не будет:
1. Труба /micq.pipe вообще не существует (опечатка у вас)
2. /tmp/micq.pipe существует, но предназначена для получения вывода программы, а не ввода команд (для ввода используется BASEDIR/remote-control, как правильно указал автор)
3. tail -f здесь служит для того, чтобы отстегнутая от ввода micq не уходила в спячку. Правда я не уверен, что правильно так обращаться с /dev/null, но думаю автор в этом разобрался лучше. | |
|
|
1.2, chip (??), 21:16, 26/03/2005 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
ИМХО, вся эта конструкция слишком хлюпкая. У pipe __всегда__ должен быть читатель и писатель! Со всеми вытекающими... | |
1.9, obl (ok), 18:50, 13/10/2006 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
чтото не работает данная конструкция
может что новое придумал в мАське :) | |
|
2.10, obl (ok), 14:08, 17/10/2006 [^] [^^] [^^^] [ответить]
| +/– |
>чтото не работает данная конструкция
>может что новое придумал в мАське :)
у меня вот такая конструкция
вот стартовый скрипт:
#!/usr/local/bin/bash
echo -n ' mICQ '
case "$1" in
start)
echo "" > /home/.micq/in
echo "" > /home/.micq/out
tail -f /home/.micq/in | micq --passwd 1Qx5sdcd --basedir /home/.micq -C "msg DarthCasper System UP"> /home/.micq/out &
sleep 3 && cat /home/.micq/out && echo &
sleep 10 && printf "msg DarthCasper Bot System UP\n" >> /home/.micq/in && printf "msg Taver Bot System UP\n" >> /home/.micq/in &
echo
;;
stop)
printf " msg DarthCasper System Shutdown\n" >> /usr/home/.micq/in
sleep 1
printf " exit\n" >> /usr/home/.micq/in
sleep 2 && tail /home/.micq/out &
echo
;;
*)
echo "Usage: 'basename $0' {start|stop}" >&2
exit 64
;;
esac
exit 0
ето домашняя дирректория /home/.micq/
/home/.micq/out - от сюда читаем если хоцца
/home/.micq/in - сюда пишем если хоцца :)
писать только надо через добавление в конец - тоесть ">>"
вот и все грабли :)
вот права на файло
-rwsr-sr-t 1 nagios nagios 497444 5 окт 14:00 /usr/local/bin/micq
| |
|
1.11, Timka (??), 13:55, 03/11/2006 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
что-то последнюю неделю не работает micq :( это у всех так или только у меня? | |
|
2.12, sib (?), 22:55, 03/11/2006 [^] [^^] [^^^] [ответить]
| +/– |
Только поставил micq, вроде все верно, но выдает
Connection v8 timed out.
И ни принять, не отправить... | |
|
1.14, etz (??), 06:16, 28/02/2007 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Кто-нибудь сталкивался с ограничением сервака на интенсивность посылки мессаг? сервер начинает орать "You're sending data too fast - stop typing now, or the server will disconnect!"
Как это можно обойти средствами micq'а ? никаких настроек очереди сообщений у него не нашёл.. | |
1.15, Александр (??), 12:22, 28/06/2007 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
А чем вариант 'micq ... < /dev/null' плох?
Зачем делать tail -f /dev/null | micq ...?
Один процесс таки лучше чем 2. | |
1.16, ForeverYoung (?), 16:15, 02/07/2007 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
я лично сделал так:
foreveryoung ~ # cat ~icqbot/script
#!/usr/bin/perl
$_ = 1;
exit if( $#ARGV < 0 );
use File::Tail;
$name = "/home/icqbot/.micq/history/${ARGV[0]}.log";
my $ref=tie *FH,"File::Tail",(name=>$name, maxinterval=>1, interval=>1);
open LOG, ">${ARGV[0]}_bot.log";
$skip = 0;
$cmd = 0;
while( <FH> )
{
if( $skip > 0 )
{
$skip--;
next;
}
if( $_ =~ /# \d+\/ \[[^]]+\]\S+ -> [^[]*\[[^]]+\] [+](\d+)/ )
{
$skip = $1;
$cmd = 0;
next;
}
if( $_ =~ /# \d+\/ \[[^]]+\]\S+ <- [^[]*\[[^]]+\] [+](\d+)/ )
{
$cmd = 1;
next;
}
if( !$cmd )
{
next;
}
if( $_ =~ /^ping (.+)$/ )
{
print LOG "Pinging $1\n";
$ping = 'ping -c 10 $1 2>&1';
open OUT, ">.micq/scripting";
print OUT "/msg ${ARGV[0]}\n";
print OUT $ping;
print OUT ".\n";
close OUT;
next;
}
}
а micq убирается в фон с помощью screen:
# screen -AmdS icq micq
| |
1.17, Slimy Cat (ok), 21:18, 05/02/2008 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
А как быть, если надо "оторвать" бота от сеанса (у меня не micq, а climm)?
Я пробовал такое:
nohup /usr/local/bin/climm 2>&1 > /dev/null &
Работает, но состояние процесса RUN и ПОЛНАЯ загрузка процессора... idle = 0.00%
Хотя если загнать его просто в бэкграунд в текущем сеансе, все нормально, статус select, WCPU ~ 0.5%
virtual:~# top -n
19 processes: 2 running, 17 sleeping
PID USERNAME THR PRI NICE SIZE RES STATE TIME WCPU COMMAND
7709 root 1 132 0 3856K 2252K RUN 1:14 92.25% climm
753 root 1 96 0 1400K 832K select 0:22 0.00% syslogd
Подозреваю, что "оторванный" от stdin процесс начинает опрашивать либо несуществующий stdin, либо пайп, чем и грузит проц.
Кто что посоветует?
Screen не предлагать, т.к. его в *.tbz нет, а компилятор отсутствует по определению (так надо).
| |
|
2.20, GoodOkk (?), 17:38, 25/11/2009 [^] [^^] [^^^] [ответить]
| +/– |
У меня подобная проблема. Как заставить climm не вылетать, после того, как вылогиниваешься из консоли? даже со screen не могу разобраться как сделать, аська не запускается, если перенаправлять вывод в пайп, а если не перенаправлять, то все нормально, но, тогда смысл бота теряется :(
| |
|
3.21, Alexey (??), 19:33, 25/11/2009 [^] [^^] [^^^] [ответить]
| +/– |
>У меня подобная проблема. Как заставить climm не вылетать, после того, как
>вылогиниваешься из консоли? даже со screen не могу разобраться как сделать,
>аська не запускается, если перенаправлять вывод в пайп, а если не
>перенаправлять, то все нормально, но, тогда смысл бота теряется :(
Я запускаю из скрипта запуска - /usr/local/bin/screen -d -m /usr/local/bin/climm
Чтобы не вылетал - нужно 1. Запустить screen 2. Запустить в нем climm 3. "Оторвать" screen от консоли (detach) 4. Можно выходить из консоли по exit
Читайте мануал по командным клавишам screen и параметрам запуска.
Может быть, как-нибудь соберусь и напишу-таки небольшое руководство по установке и настройке icq-бота под управлением climm.
PS НЕ РЕКЛАМА! Если таковое будет написано (+- около НГ), читать по адресу http://slimy-cat.blogspot.com/
| |
|
|
1.18, Дмитрий (??), 00:26, 15/07/2009 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Есть вопросы... что то я не въехал.
MICQ работает нормальною, PIPE посмотрел командой tail
Вопрос такой насущный....
Как прочитать полученное например PHP скриптом?
и как отправить ответ в MICQ этим скриптом?
| |
|
2.19, Alexey (??), 12:12, 21/07/2009 [^] [^^] [^^^] [ответить]
| +/– |
>Есть вопросы... что то я не въехал.
>MICQ работает нормальною, PIPE посмотрел командой tail
>
>Вопрос такой насущный....
>
>Как прочитать полученное например PHP скриптом?
>и как отправить ответ в MICQ этим скриптом?
Смогу ответить кратко, пока что я занят и не имею возможности расписать подробно.
Я не использовал tail, я импользовал каналы (pipes).
Обработчик событий прописывается в конфиге climm (можно прописать исполняемый скрипт, PHP-скрипт и тд.)
Данные берутся и отправляются в каналы (вместо экрана).
По предыдущему вопросу - решилось, screen нашел в пакадже, все работает отлично.
| |
|
|