| 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
|