وضع البرامج في قائمة بدء التشغيل
وضع البرامج في قائمة التشغيل في اللينكس بسيط ولكن يحتاج الى ترتيب افكار قبل البدء فيه
فنحن نعلم ان في اللينكس 6 مستويات (level) تبدأ ب0 وتنتهي ب 6 وكل مستوى له مجلد خاص يحوي softlink لبرامج التي سيتم تشغيلها او ايقافها في اي مستوى level
هذه المجلدات تكون بصيغة rc[level #].d تحت مجلد /etc/rc.d
CODE
/etc/rc.d # ll rc*.*
drwxr-xr-x 2 root root 4096 Feb 26 2005 init.d
-rwxr-xr-x 1 root root 2310 Feb 19 2004 rc
drwxr-xr-x 2 root root 4096 Jul 4 13:08 rc0.d
drwxr-xr-x 2 root root 4096 Jul 4 13:08 rc1.d
drwxr-xr-x 2 root root 4096 Jul 4 13:08 rc2.d
drwxr-xr-x 2 root root 4096 Jul 4 13:08 rc3.d
drwxr-xr-x 2 root root 4096 Jul 4 13:08 rc4.d
drwxr-xr-x 2 root root 4096 Jul 4 13:08 rc5.d
drwxr-xr-x 2 root root 4096 Jul 4 13:08 rc6.d
-rwxr-xr-x 1 root root 220 Jun 23 2003 rc.local
-rwxr-xr-x 1 root root 24598 Sep 28 2004 rc.sysinit
هذا بالاضافة الى ان المجلد /etc يحوي soft link لجميع المجلدات الموجودة في /etc/rc.d
CODE
/etc/# ll rc*.*
lrwxrwxrwx 1 root root 7 Feb 26 2005 rc -> rc.d/rc
lrwxrwxrwx 1 root root 10 Feb 26 2005 rc0.d -> rc.d/rc0.d
lrwxrwxrwx 1 root root 10 Feb 26 2005 rc1.d -> rc.d/rc1.d
lrwxrwxrwx 1 root root 10 Feb 26 2005 rc2.d -> rc.d/rc2.d
lrwxrwxrwx 1 root root 10 Feb 26 2005 rc3.d -> rc.d/rc3.d
lrwxrwxrwx 1 root root 10 Feb 26 2005 rc4.d -> rc.d/rc4.d
lrwxrwxrwx 1 root root 10 Feb 26 2005 rc5.d -> rc.d/rc5.d
lrwxrwxrwx 1 root root 10 Feb 26 2005 rc6.d -> rc.d/rc6.d
lrwxrwxrwx 1 root root 13 Feb 26 2005 rc.local -> rc.d/rc.local
lrwxrwxrwx 1 root root 15 Feb 26 2005 rc.sysinit -> rc.d/rc.sysinit
والان وقد عرفنا المستويات ومواقعها دعونا ندخل الى احداها لنرى محتواها
CODE
# cd /etc/rc3.d
# ll
……
lrwxrwxrwx 1 root root 14 Nov 24 00:07 K61ldap -> ../init.d/ldap
lrwxrwxrwx 1 root root 14 Nov 24 00:06 K74ntpd -> ../init.d/ntpd
lrwxrwxrwx 1 root root 13 Nov 24 00:05 K74ups -> ../init.d/ups
lrwxrwxrwx 1 root root 15 Nov 24 00:07 S05kudzu -> ../init.d/kudzu
lrwxrwxrwx 1 root root 18 Nov 24 00:09 S08iptables -> ../init.d/iptables
lrwxrwxrwx 1 root root 14 Nov 24 00:08 S09isdn -> ../init.d/isdn
lrwxrwxrwx 1 root root 17 Nov 24 00:08 S10network -> ../init.d/network
lrwxrwxrwx 1 root root 16 Nov 24 00:06 S12syslog -> ../init.d/syslog
lrwxrwxrwx 1 root root 18 Nov 24 00:06 S17keytable -> ../init.d/keytable
lrwxrwxrwx 1 root root 16 Nov 24 00:08 S20random -> ../init.d/random
lrwxrwxrwx 1 root root 16 Nov 24 00:09 S24pcmcia -> ../init.d/pcmcia
……
هذا بعض ما يحويه المجلد /etc/rc3.d ولكني اخذت بعضا منه فقط للمثال فنلاحظ ان جميع الملفات في هذا المجلد وغيرة كلها soft link تشير الى ملف script موجود في مجلد /etc/init.d على هذا ينفذ هذا ال script بناءا على محددتان وهما اذا لاحظتم ان اسم اي softlink تبدأ اما بحرف K او حرف S ثم رقم ومن ثم اسمها الذي يصفها
S :: ان اي script file يبدا بحرفS ٍ يعني ان هذا النص سينفذ ويعمل في هذا المستوى (المستوى الذي تم اختياره) اذ ان S تعني Start
K :: واي ملف يبدأ بحرف K يعني ان هذا النص سينفذ لوقف service معينة ومنعها من العمل في هذا المستوى اذ ان K تعني KILL
الرقم : ان الرقم الذي يتبع الحرف الذي يحدد اما ان تعمل S او تعمل K هو مرتبة هذا الscript اذ ان السكريبت الذي رقمة 20 يبدا العمل قبل السكريبت الذي رقمة 30 وهكذا يحدد نظانم الاولوية في التنفيذ
ملاحظة لو استعرضنا محتوى rc6.d نلاحظ ان محتوى المستوى 6 كلها تبدأ بk اذ انه مسوى اعادة التشغيل جرب تنفيذ الامر التالي والذي سينقلك الى المستوى 6 من سطر الاوامر
init 6
ملاحظة عدد المسويات من 0 - 6
المسوى 0 = اغلاق الجهاز
المسوى 1 = rescue level , مستخدم واحد فقط
المسوى 2 = بدون اعدادات الشبكة لكل المستخدمين
المسوى 3 = مع اعدادات الشبكة وجميع المستخدمين بدون واجهة رسومية
المسوى 4 = غير محدد (غير موجود)
المسوى 5 = جميع المستخدمين مع اعدادات الشبكة مع واجه رسومية
المسوى 6 = اعادة تشغيل الجهاز
كيفية اضافة وازالة برنامج من اي مسنوى
يتم ذلك بالاستعانة بالامر chkconfig
جرب الامر
chkconfig --list
ستظهر جميع المستويات وجميع البرامج بحيث اذا كان البرنامج المعين يعمل تحت مستوى ما فانة يظهر كلمة on تحت المستوى او off اذا كان لا يعمل
والان لاضافة خدمة sshdبحيث تعمل تحت كل المستويات ننفذ الامر التالي
CODE
# chkconfig sshd --level 1235 on
جرب الامر التالي مرة اخرى
chkconfig --list
CODE
# chkconfig --list
sshd 0:on 1:on 2:on 3:on 4:on 5:on 6:off
proftpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
smb 0:off 1:off 2:off 3:off 4:off 5:off 6:off
crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off
anacron 0:off 1:off 2:on 3:on 4:on 5:on 6:off
xinetd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
httpd-admin 0:off 1:off 2:off 3:off 4:off 5:off 6:off
httpd-e-smith 0:off 1:off 2:off 3:off 4:off 5:off 6:off
clamd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
xinetd based services:
chargen-udp: off
rsync: off
proftpd: off
chargen: off
daytime-udp: off
daytime: off
echo-udp: off
echo: off
services: off
servers: off
time-udp: off
time: off
telnet: off
السؤال الان كيفية الامر الذي يزيل خدمة sshd من المستوى 1 والمستوى 2؟