Официальный сайт студ.городка НГТУ
Software » [Freebsd] Скрипт не сразу грепуется из top 

#1  22.07.09 13:10

[Freebsd] Скрипт не сразу грепуется из top

uname -a
FreeBSD 6.3-STABLE

Стоит сфинкс. Иногда что-то глючит и searchd, процесс сфинкса, падает. Что бы обеспечить маломальски стабильную работу поиска на время поиска "что-то глючит" написал на питоне скриптец

Код: python:

#! /usr/local/bin/python
 
import os, commands
 
is_search = commands.getoutput('top|grep searchd');
 
if is_search=='':
    indexer = '/usr/local/bin/indexer --config /home/sphinx/sphinx.conf --all';
    searchd = '/usr/local/bin/searchd --config /home/sphinx/sphinx.conf';
    os.system(indexer); #запустим идексатор
    os.system(searchd); #а затем процесс сфинкса
else:
    print 'Sphinx on air!';


И поставил этот скрипт в крон на каждую минуту, но оказалось что после запуска searchd из скрипта он виден в top но top|grep searchd нихрена его не видит сразу, а только примерно после 20-30 секунд, что не критично но интересно от чего так получается. И может быть есть более лучшее решение этой проблемы на питоне?

Исправлено iDrum (22.07.09 13:11)

Offline

#2  22.07.09 13:38

Re: [Freebsd] Скрипт не сразу грепуется из top

Да, задачка как раз для питона. Заменить две строки на шелле целым питоновским скриптом - самое оно.
Чего уж там, надо было тогда сразу на C++ или Java писать.

Use ps instead of top.

Offline

#3  22.07.09 13:49

Re: [Freebsd] Скрипт не сразу грепуется из top

Eugene Karnaukhov, а в чем проблема? Ассемблером балуетесь?
Если человеку питон роднее и производительность здесь роль не играет, то почему бы и нет?

Offline

#4  22.07.09 14:12

Re: [Freebsd] Скрипт не сразу грепуется из top

мне было интересно решить проблему на питоне.

Offline

#5  22.07.09 14:54

Re: [Freebsd] Скрипт не сразу грепуется из top

Код::

# cd /usr/ports/sysutils/pidof
# make && make install && make clean

iDrum написал(а):

is_search = commands.getoutput('top|grep searchd');

Код::

is_search = commands.getoutput('pidof searchd');

Offline

#6  22.07.09 15:13

Re: [Freebsd] Скрипт не сразу грепуется из top

Jaguar написал(а):

pidof

сам такой

Код: python:

#! /usr/local/bin/python
 
import os, commands, re
 
command = 'pgrep searchd | wc -l';
is_search = commands.getoutput(command);
 
digits = re.compile('[0-9]+').findall(is_search);
result = digits[0];
 
if result=='0':
    indexer = '/usr/local/bin/indexer --config /home/sphinx/sphinx.conf --all';
    searchd = '/usr/local/bin/searchd --config /home/sphinx/sphinx.conf';
    os.system(indexer);
    os.system(searchd);
else:
    print 'Sphinx on air!';

лол конешно, регулярки блин, но мляцкий wc -l выводит таб перед цифрой

Исправлено iDrum (22.07.09 15:13)

Offline

#7  22.07.09 20:32

Re: [Freebsd] Скрипт не сразу грепуется из top

Диман, я серьезно... pidof - это утила, которая возвращает PID процесса, если тот запущен... это намного удобнее и правильнее, чем пляски с грепом и вц

Offline

#8  22.07.09 23:36

Wic
Профиль

Re: [Freebsd] Скрипт не сразу грепуется из top

вроде как во фряхе на шеле можно проще сделать...только пока не углублялся как это делается, просто пару примеров видел

Offline

#9  23.07.09 09:11

Re: [Freebsd] Скрипт не сразу грепуется из top

да ёмана, мне на питоне нада, не потому что шел быстрее и проще а потому что нада :)

Offline

#10  23.07.09 09:45

Я
Профиль

Re: [Freebsd] Скрипт не сразу грепуется из top

Jaguar, Ну да, лучше поставить утилиту, которой по умолчанию нет в системе. :)

Offline

#11  23.07.09 10:46

Re: [Freebsd] Скрипт не сразу грепуется из top

а почему топ а не ps ax?

Offline

#12  23.07.09 10:48

Re: [Freebsd] Скрипт не сразу грепуется из top

otaku, ты щаз уличён в том что не читаешь тред, pgrep. ну можно и зы

Offline

#13  23.07.09 10:52

Re: [Freebsd] Скрипт не сразу грепуется из top

Jaguar написал(а):

Диман, я серьезно... pidof - это утила, которая возвращает PID процесса, если тот запущен... это намного удобнее и правильнее, чем пляски с грепом и вц

я почитал о ней, да удобней. но я против, то есть не против, а меня бесит когда в линухе что бы чёто заработало надо стопицот милионов пакетов сначала поставить только потому что разработичку удобней. Допустим этот скрипт можно (но не нужно:) ) выложить и его нужно только скачать и он будет работать "из коробки".

Offline

#14  23.07.09 12:04

Re: [Freebsd] Скрипт не сразу грепуется из top

Так ты из каропки укажи депендэнси. :)

Offline

#15  23.07.09 14:18

Re: [Freebsd] Скрипт не сразу грепуется из top

Если не ставить pidof, то:

pgrep searchd | wc -l|awk '{print $1}'
или
ps ax|grep searchd|grep -v grep -c

Offline

#16  23.07.09 14:24

Re: [Freebsd] Скрипт не сразу грепуется из top

iDrum написал(а):

меня бесит когда в линухе что бы чёто заработало надо стопицот милионов пакетов сначала поставить только потому что разработичку удобней.

1. у тебя бсд
2. питон тоже по-умолчанию не ставится

iDrum написал(а):

да ёмана, мне на питоне нада, не потому что шел быстрее

ты в любом случае используешь вывод сторонних утилит... сам скрипт у тебя может и на питоне, но основную работу у тебя делает как раз шел :)

Offline

#17  23.07.09 14:29

Re: [Freebsd] Скрипт не сразу грепуется из top

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

Исправлено Jaguar (23.07.09 14:31)

Offline

#18  23.07.09 14:32

Re: [Freebsd] Скрипт не сразу грепуется из top

@Eugene Karnaukhov: привет, Женя... давно не было видно... :)

Offline

#19  24.07.09 13:44

Re: [Freebsd] Скрипт не сразу грепуется из top

Макс, да я так, смотритель больше.
Редко темы интересные появляются, запал уже не тот.

Offline

#20  24.07.09 17:10

Re: [Freebsd] Скрипт не сразу грепуется из top

Eugene Karnaukhov, :) как столица, как живется в ней?

Offline

#21  01.08.09 10:08

Max
Профиль

Re: [Freebsd] Скрипт не сразу грепуется из top

if ! pidof searchd >/dev/null; then indexer; searchd; fi

Offline

#22  01.08.09 11:16

Re: [Freebsd] Скрипт не сразу грепуется из top

дада, "у тебя длинее" :)

Offline

Software » [Freebsd] Скрипт не сразу грепуется из top 

ФутЕр:)

© Hostel Web Group, 2002-2025.   Сообщить об ошибке

Сгенерировано за 0.120 сек.
Выполнено 11 запросов.