كيف يمكنني برمجيا إعادة تشغيل خدمة النظام (لا اباتشي) من اباتشي في لينكس؟

StackOverflow https://stackoverflow.com/questions/349884

سؤال

وأنا بحاجة إلى طريقة بسيطة لتسمح للمستخدم النهائي لإعادة هر من صفحة ويب خدم من اباتشي على نفس المربع.

ونحن نحاول أن تجعل من السهل على قسم مراقبة الجودة لدينا لنشر نسخة جديدة من تطبيق الويب لدينا لاباتشي. نحن نستخدم السامبا، ولكن نحن بحاجة إلى طريقة سهلة بالنسبة لهم لوقف / بدء الملقم هر قبل / بعد نشر.

وهذا من شأنه أن يكون فقط لصناديق مراقبة الجودة الداخلية. هل هناك حل موجود لهذا؟ أو سيكون من الأسهل لكتابة بضعة تطبيق فب سريع للتعامل مع هذا؟

هل كانت مفيدة؟

المحلول

وأود أن تخطي، ولكن لا تقم بتشغيل CGI كجذر. بدلا من ذلك، لديها سودو الدعوة CGI. يمكنك إعطاء إذن خادم الويب الخاص بك لتشغيل /etc/init.d/tomcat restart فقط في ملف sudoers.

ولقد فعلت هذا الواقع في العمل؛ الجزء ذي الصلة من CGI يبدو مثل هذا:

#!/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

وهنا هو خط سبيل المثال من / الخ / sudoers (استخدام visudo إلى تعديل، وبطبيعة الحال):

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

وهذا يتيح لكل فرد لإعادة قط. هل يمكن قصرها على أباتشي فقط إذا كنت ترغب.

نصائح أخرى

وأود أن استخدام برنامج نصي CGI. إعداده لتشغيل كجذر، وندعو "/etc/init.d/tomcat إعادة تشغيل" (أو مهما إعادة تشغيل قط على المربع الخاص بك).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top