Nasıl programlama linux içinde apache bir sistem hizmetini (apache değil) yeniden mi?

2 Cevap php

Ben bir son kullanıcı aynı kutu üzerinde apache den sunulan bir web sayfası tomcat yeniden başlatmak için izin basit bir yol gerekir.

Biz kolay bizim QC departmanı apache bizim webapp yeni bir sürümünü dağıtmak için yapmak için çalışıyoruz. Biz samba kullanıyorsanız, ama biz tomcat sunucuyu başlatmak / onları durdurmak için kolay bir yol gerek önce / dağıtımdan sonra.

Bu, yalnızca iç qc kutuları olurdu. Bunun için mevcut bir çözüm var mı? ya bu işlemek için birkaç hızlı php uygulama yazmak için daha kolay olurdu?

2 Cevap

Atla gibi dedi, ama root olarak CGI çalıştırmak yok. Bunun yerine, CGI çağrı sudo var. Sen /etc/init.d/tomcat restart sadece sudoers dosyasında çalıştırmak için web sunucusu izin verebilir.

Aslında işte bu yaptık; CGI ilgili bölümü şöyle:

#!/usr/bin/perl
use CGI;
use IPC::Run3;
my $CGI = new CGI;

my $output;
if (defined $CGI->param('go') && 'restart' eq $CGI->param('go')) {
    run3 [ qw(sudo /etc/init.d/tomcat5.5 restart) ], \undef, \$output, \$output;
}

print <<EOF
Content-type: text/html

Blah, blah, blah, HTML form, displays $output at some point.
EOF

Burada / etc / sudoers (kullanım visudo elbette düzenlemek için) bir örnek satır:

ALL     ALL=(root) NOPASSWD: /etc/init.d/tomcat5.5 restart

Herkesin Tomcat yeniden sağlar. Dilerseniz sadece eğer Apache sınırlamak olabilir.

Ben bir CGI komut dosyası kullanabilirsiniz. Root olarak çalıştırmak için yukarı ayarlayın ve '/ etc / init.d / tomcat restart' (ya da ancak sizin kutusunu tomcat'ı yeniden) diyoruz.