2015-07-06 10 views
6

Pytanie: Jak zabić proces przy użyciu sys_exec().
Próbuję wykonać skrypt powłoki za pomocą funkcji sys_exec().
mój skrypt zawieraMYSQL: Aby zabić proces przy użyciu sys_exec()

killall process_name 

kiedy wykonać nad scenariuszem, w tym czasie nie jest wywołanie komendy

killall process_name

. Ale wykonuje inne operacje, takie jak `

sys_exec (dotyk nazwa_pliku.txt);`

Jak wykonać powyżej shellscript?

+0

może być może to pomoże .. http: // crazytechthough ts.blogspot.in/2011/12/call-external-program-from-mysql.html –

+0

Tak, już próbowałem tego ... ale kiedy próbuję zabić każdy proces używając mysql w tym czasie, to nie jest proces zabijania. .so może być mysql nie ma uprawnień do zabicia procesu .. tak jak mogę zmienić to pozwolenie na jakiś pomysł? – Logicbomb

Odpowiedz

2

Jeśli masz MySQL 5.1 gdzie processlist jest w INFORMATION_SCHEMA, można to zrobić, aby wygenerować KILL QUERY polecenia luzem od wewnątrz mysql klienta:

SELECT GROUP_CONCAT(CONCAT('KILL QUERY ',id,';') SEPARATOR ' ') KillQuery 
FROM information_schema.processlist WHERE user<>'system user'\G 

Czasami warto spojrzeć na te linki

http://dbadiaries.com/how-to-kill-all-mysql-processes-for-a-specific-user https://dba.stackexchange.com/questions/2634/kill-all-queries-mysql

+0

To nie jest dla mnie wuj. – Logicbomb

+0

Jaki błąd dostałeś? – Abhinav

+0

po uruchomieniu SELECT sys_exec ("touch /tmp/test.txt"); to od mysql, a następnie jego praca dla mnie ... ale ... kiedy wykonuję SELECT sys_exec ("sh /home/ketul/sig.sh"); to nie działa dla mnie ... sig.sh zawiera "kill processname" – Logicbomb