Enviado em 05/08/2009 - 03:28h
Pessoal,
Minha pergunta pode parecer ridícula, mas minha dificuldade em programação é grande.
Tenho em meu servidor linux, diversos processos de um mesmo serviço, em instances diferentes. O que preciso, é identificar uma determinanda instance deste serviço, parar ou matar o processo e reinicia-lo.
Tentei criar um script para essa finalidade, mas fracassei em todas as tentativas.
Para ilustrar minha necessidade, segue o exemplo:
OpenVPN
* Cria-se 4 vpn's, cada uma executa o comando "/usr/sbin/openvpn" seguido do respectivo arquivo de configuração, assim, temos:
/usr/sbin/openvpn --config /etc/openvpn/parana.conf --daemon
/usr/sbin/openvpn --config /etc/openvpn/riodejaneiro.conf --daemon
/usr/sbin/openvpn --config /etc/openvpn/minasgerais.conf --daemon
/usr/sbin/openvpn --config /etc/openvpn/matogrosso.conf --daemon
e consequentemente, ao rodar um "ps xa | grep openvpn",
15692 ? Ss 0:06 /usr/sbin/openvpn --config /etc/openvpn/riodejaneiro.conf --daemon
25694 ? Ss 304:23 /usr/sbin/openvpn --config /etc/openvpn/matogrosso.conf --daemon
25721 ? Ss 0:14 /usr/sbin/openvpn --config /etc/openvpn/minasgerais.conf --daemon
25730 ? Ss 1:01 /usr/sbin/openvpn --config /etc/openvpn/parana.conf --daemon
Então, caso eu realize alguma alteração na configuração e/ou precise reiniciar somente uma única instance do openvpn, preciso identificar qual é o número do processo, matar esse processo e executá-lo novamente. Manualmente, seria assim:
# ps xa | grep parana
25730 ? Ss 1:01 /usr/sbin/openvpn --config /etc/openvpn/parana.conf --daemon
# kill -9 25730
# /usr/sbin/openvpn --config /etc/openvpn/parana.conf --daemon
Como posso melhorar esse procedimento, criando um script para essa finalidade?
Assim como o openvpn, tenho diversos outros serviços com a mesma característica e necessidade, pois, se executar o comando padrão (# /etc/rc.d/init/d/openvpn restart), não irá contemplar a desejada finalidade.
Muito obrigado pela ajuda e, desculpe-me qualquer coisa.
Grato,
Benhur.
Minha pergunta pode parecer ridícula, mas minha dificuldade em programação é grande.
Tenho em meu servidor linux, diversos processos de um mesmo serviço, em instances diferentes. O que preciso, é identificar uma determinanda instance deste serviço, parar ou matar o processo e reinicia-lo.
Tentei criar um script para essa finalidade, mas fracassei em todas as tentativas.
Para ilustrar minha necessidade, segue o exemplo:
OpenVPN
* Cria-se 4 vpn's, cada uma executa o comando "/usr/sbin/openvpn" seguido do respectivo arquivo de configuração, assim, temos:
/usr/sbin/openvpn --config /etc/openvpn/parana.conf --daemon
/usr/sbin/openvpn --config /etc/openvpn/riodejaneiro.conf --daemon
/usr/sbin/openvpn --config /etc/openvpn/minasgerais.conf --daemon
/usr/sbin/openvpn --config /etc/openvpn/matogrosso.conf --daemon
e consequentemente, ao rodar um "ps xa | grep openvpn",
15692 ? Ss 0:06 /usr/sbin/openvpn --config /etc/openvpn/riodejaneiro.conf --daemon
25694 ? Ss 304:23 /usr/sbin/openvpn --config /etc/openvpn/matogrosso.conf --daemon
25721 ? Ss 0:14 /usr/sbin/openvpn --config /etc/openvpn/minasgerais.conf --daemon
25730 ? Ss 1:01 /usr/sbin/openvpn --config /etc/openvpn/parana.conf --daemon
Então, caso eu realize alguma alteração na configuração e/ou precise reiniciar somente uma única instance do openvpn, preciso identificar qual é o número do processo, matar esse processo e executá-lo novamente. Manualmente, seria assim:
# ps xa | grep parana
25730 ? Ss 1:01 /usr/sbin/openvpn --config /etc/openvpn/parana.conf --daemon
# kill -9 25730
# /usr/sbin/openvpn --config /etc/openvpn/parana.conf --daemon
Como posso melhorar esse procedimento, criando um script para essa finalidade?
Assim como o openvpn, tenho diversos outros serviços com a mesma característica e necessidade, pois, se executar o comando padrão (# /etc/rc.d/init/d/openvpn restart), não irá contemplar a desejada finalidade.
Muito obrigado pela ajuda e, desculpe-me qualquer coisa.
Grato,
Benhur.