GoFuckBiz.info
Форум успешных вебмастеров - GoFuckBiz.info
SEO · трафик · партнерские программы

   Форум успешных вебмастеров - GoFuckBiz.info > Бизнес-решения > Скрипты, программы и технические решения > Убить процесс (php и bash)

Просмотр полной версии : Убить процесс (php и bash)

26.12.2008, 09:14
medar
Собственно, вопрос мой состоит из двух частей.

1. Как убивать процессы из php ? У меня php запускается из апача, а у него юзер apache. system("kill ххххх"); не работает, очевидно, не хватает прав. Вопрос - как это можно обойти ? Поднять права для apache ? Но это leak security..

2. Как можно убить процессы массово из командной строки ? Например, я получаю список нужных процессов командой ps ax | grep cron.php . Как оттуда вынуть pid и передать киллу ?
26.12.2008, 09:37
nggr
прописать скрипт в кроне который будет брать список Pid-ов из файла и их убивать, а в файл писать из-под апача.
26.12.2008, 09:44
gcc
2. Как можно убить процессы массово из командной строки ? Например, я получаю список нужных процессов командой ps ax | grep cron.php . Как оттуда вынуть pid и передать киллу ?

http://linuxforum.ru/index.php?showtopic=82351

?
26.12.2008, 10:16
JackSoft
Собственно, вопрос мой состоит из двух частей.

1. Как убивать процессы из php ? У меня php запускается из апача, а у него юзер apache. system("kill ххххх"); не работает, очевидно, не хватает прав. Вопрос - как это можно обойти ? Поднять права для apache ? Но это leak security..

2. Как можно убить процессы массово из командной строки ? Например, я получаю список нужных процессов командой ps ax | grep cron.php . Как оттуда вынуть pid и передать киллу ?

п.1 настроить sudo и убивать через него.
п.2 killall php
26.12.2008, 12:12
medar
п.1 настроить sudo и убивать через него.
п.2 killall php
Отлично, JackSoft, спасибо!

UPD
добавил в visudo строку apache ALL=NOPASSWD:/bin/kill,/usr/bin/kill
но sudo kill xxxxx из php-скрипта не пашет..
В чем может быть трабл ?
27.12.2008, 00:49
null
отлично, Jacksoft, спасибо!

Upd
добавил в Visudo строку Apache All=nopasswd:/bin/kill,/usr/bin/kill
но Sudo Kill Xxxxx из Php-скрипта не пашет..
в чем может быть трабл ?

делай вывод ошибки на экран или файл и смотри где грабли.
27.12.2008, 22:32
JackSoft
Отлично, JackSoft, спасибо!

UPD
добавил в visudo строку apache ALL=NOPASSWD:/bin/kill,/usr/bin/kill
но sudo kill xxxxx из php-скрипта не пашет..
В чем может быть трабл ?

Обязательно пиши полные пути в скрипте к sudo, kill ...
30.12.2008, 18:33
Hector
А как мочить запущеный пхп скрипт? Кнопка стоп в браузере не помогает, удаление файла скрипта тоже.

В скрипте стоит set_time_limit(600);
30.12.2008, 19:01
JackSoft
а как мочить запущеный пхп скрипт? кнопка стоп в браузере не помогает, удаление файла скрипта тоже.

в скрипте стоит Set_time_limit(600);

все зависит как запускаеш. с телепатией под нг совсем хреново стало... ;)
30.12.2008, 19:16
false
ps auxwww|grep SCRIPT.php|grep -v grep

далее по ПИДу убиваем
30.12.2008, 19:17
Hector
с браузера просто и он сразу начинает работать
31.12.2008, 09:35
JackSoft
ps auxwww|grep SCRIPT.php|grep -v grep

далее по ПИДу убиваем

ps ax | grep php
дальше по тексту :)
31.12.2008, 09:37
JackSoft
с браузера просто и он сразу начинает работать

возможно скрипт порождает демонов ;)
нету запуска из него сторонних процессов? если да, то остановка этого срипта не остановит порожденные процессы, если нет - копай настройки браузра (подсказка mod_php, fastcgi).
31.12.2008, 21:15
Hector
из под шела как убить?
31.12.2008, 21:19
drochsence
из под шела как убить?

kill PID
01.01.2009, 20:37
JackSoft
из под шела как убить?

Возвращаемся в начало треда и сморим про
killall и kill ;)
01.01.2009, 20:52
Lovec
из под шела как убить?

ps -ax|grep php
смотришь PID (номер) процесса
потом
kill -9 PID && echo "sdoxni scuko!"
19.01.2009, 22:47
Hector
Делаю: ps ax | grep php

Получил: 23295 pts/0 S+ 0:00 grep php
23295 - это процесс? если да то бестолку

А вот еще:
killall php
php: no process killed

Короче заебался с пхп процессами, с браузера не остановить ) Сет тайм лимит не работает )))) процес убить не может
Кстати в php.ini стоит max exec time вроде 30, и все равно до песды))))))
19.01.2009, 22:59
gcc
23295 это греп у тебя :)
19.01.2009, 23:42
Hector
23295 это греп у тебя :)где покурить? ))
20.01.2009, 11:11
JackSoft
где покурить? ))

Зависит от воспитания... ;)
Можеш на кухне, можеш на балконе, некоторые в лифтах курят... :)
20.01.2009, 11:35
Домкрат
вроде к команде kill ещё можно приписать флажок -9, типа kill -9 83745 и тогда пиздец коту
20.01.2009, 14:15
Hector
А возможно что php не отображается в процессах? Скажем по комманде "top" его не видно.
20.01.2009, 16:29
sergeospb
А возможно что php не отображается в процессах? Скажем по команде "top" его не видно.
Возможно, команда top отображает не все процессы. Чтобы посмотреть процессы php делай ps aux | grep php.
20.01.2009, 16:50
azaza
Делаю: ps ax | grep php

Получил: 23295 pts/0 S+ 0:00 grep php
23295 - это процесс? если да то бестолку

А вот еще:
killall php
php: no process killed

Короче заебался с пхп процессами, с браузера не остановить ) Сет тайм лимит не работает )))) процес убить не может
Кстати в php.ini стоит max exec time вроде 30, и все равно до песды))))))

то что ты получил это результат ps ax | grep php. ведь ты тоже процесс запустил. он и отобразился. а еще должны быть и другие процессы.
если нету, значит и процесса нету :)
20.01.2009, 17:08
Hector
- ты кролика видишь?
- нет.
- а он есть

странно процесса пхп нет - а результат отдает )))))
20.01.2009, 17:13
azaza
кто отдает результат? браузер? тогда апачь смотри :)
20.01.2009, 17:25
Hector
в файл пишет )
20.01.2009, 17:39
azaza
апачь же запускает пхп скрипты.
20.01.2009, 17:59
sergeospb
- ты кролика видишь?
- нет.
- а он есть
странно процесса пхп нет - а результат отдает )))))
Пиля,
1) ps aux | grep apache2 //смотрим процессы апача
2) killall apache2 //прибиваем нагло апач
3) /etc/init.d/apache2 start // стартуем апач, пример дан для дебиан лайк систем.
А можно попробовать вообще по простому - рестартовать апач и делу конец, по идее если и были какие то чаилды, то они помрут (не уверен, надо пробовать).
20.01.2009, 18:11
gcc
:-D ну если надумаешь килять пхп скрипты рестартом апача,
то /etc/init.d/httpd restart для любых rh дистров
20.01.2009, 18:17
azaza
ребут тачки однозначно решит все проблемы :)
21.01.2009, 00:20
Hector
спасибо, до того как почитал тут про ребут апача его как раз таки и ребутнул ))) ниче страшного не произошло )))

всем спасибо )) процессы убиваются заебись )))
21.01.2009, 03:40
WebNinja
Сервер ребутни )))
21.01.2009, 05:21
JMen
Скрипт запускается из под апача... следовательно и килять надо апач (килять его нельзя, надо ребутить).

А вообщем делается очень просто, примерно вот так:

while (time() - $startTime < 86400) {
if (file_exists(HANDLES_DIR.'/cronjob_stop')) break;

//делаем какую - нить хуйню
}

:)

Работает на vBulletin® версия 3.8.6. Copyright ©2000-2011, Jelsoft Enterprises Ltd. Перевод: zCarot