උබුන්ටු, සිස්වී , අප්ස්ටාර්ට් සහ සිස්ටම් හි මෘදුකාංගයක් සේවාවක් ලෙස ආරම්භ කිරීමට දැනට විවිධ ක්රම තුනක් තිබේ . සේවාවක් මෙහි අර්ථ දැක්වෙන්නේ පද්ධතිය විසින් පසුබිම තුළ ක්රියාත්මක වන වැඩසටහනක් ලෙසට ය.
SysV
ලිනක්ස් හි සේවාවන් ආරම්භ කිරීමේ සාම්ප්රදායික ක්රමය වූයේ ස්ක්රිප්ටයක් ස්ථානගත කිරීම /etc/init.d
, පසුව එය සක්රීය කිරීම හෝ අක්රීය කිරීම සඳහා update-rc.d
විධානය භාවිතා කිරීම (හෝ රෙඩ්හැට් පදනම් කරගත් ඩිස්ට්රෝස් chkconfig
) ය.
මෙම විධානය මඟින් /etc/rc#.d
සේවා ආරම්භ කිරීමේ අනුපිළිවෙල පාලනය කරන සිම්ලින්ක් සෑදීම සඳහා තරමක් සංකීර්ණ තර්කනයක් භාවිතා කරයි . ඔබ ධාවනය කරන්නේ නම් ls /etc/rc2.d
, ගොනු නාමයකින් K##xxxx
ආරම්භ කර ගොනු නාම වලින් ආරම්භ වන සේවාවන් ඔබට දැකගත හැකිය S##xxxx
. මෙම ##
තුළ S##xxxx
මාර්ගයෙන් සේවාව සඳහා "ආරම්භ සාමය" xxxx
. අනිත් අතට, මේ ##
තුළ K##xxxx
සේවය සඳහා ඝාතක සඳහා අදහස් xxxx
.
SysV හි ඇති එක් ප්රධාන ගැටළුවක් වූයේ පද්ධතිය ආරම්භ කිරීමේදී සෑම දෙයක්ම අනුක්රමිකව සිදු කළ යුතු වීමයි . මෙය සමාන්තරකරණය කිරීමට උත්සාහ කළ නමුත් ඒවා අන්තරාදායක වූ අතර එයින් උපරිම ප්රයෝජන ගැනීමට අපහසු විය. අප්ස්ටාර්ට් නිර්මාණය වීමට ප්රධාන හේතුව මෙයයි .
ඉහළට
/etc/init
සේවාවක් ආරම්භ කළ යුත්තේ කුමන සිදුවීම්ද යන්න නිර්වචනය කිරීම සඳහා Upstart රැකියා අර්ථ දැක්වීමේ ලිපිගොනු භාවිතා කරයි . එබැවින්, පද්ධතිය ආරම්භ වන අතරතුර, ඉහළට විවිධ සිදුවීම් ක්රියාවට නංවන අතර සමාන්තරව විවිධ සේවාවන් ආරම්භ කළ හැකිය. නිදසුනක් ලෙස, තවත් CPU- බැඳී ඇති සේවාවක් ක්රියාත්මක වන විට හෝ ජාලය ගතික IP ලිපිනයක් ලබා දෙන තෙක් බලා සිටින අතරතුර, තැටියට බැඳී ඇති සේවාවක් ආරම්භ කිරීමෙන් පද්ධතියේ සම්පත් සම්පූර්ණයෙන්ම භාවිතා කිරීමට මෙය ඔවුන්ට ඉඩ දෙයි.
ධාවනය කිරීමෙන් ඔබට ඉහළම රැකියා ලිපිගොනු සියල්ලම දැකිය හැකිය ls /etc/init/*.conf
මට මෙහි නතර වී කියන්න, සේවාවක් යනු කුමක්දැයි හෝ එය කරන්නේ කුමක්දැයි ඔබ නොදන්නේ නම්, එය අක්රිය නොකරන්න!
සියලුම සේවාවන් උඩුමහලට පරිවර්තනය කර නොමැත. පසුගිය මාස කිහිපය තුළ කැනොනිකල් හි සේවාදායක කණ්ඩායමේ වැඩ කරමින් සිටියදී, මම පරිවර්තනය කරන ලද රැකියා ලිපිගොනු ගණනාවක වැඩ කර ඇති අතර, හොඳම දෙය නම්, එය "මැජික්" යන සියලුම ස්ක්රිප්ට් ඉවත් කර යමෙකුට තැබීමට ඉඩ දීමයි. සේවාව ආරම්භ කරන්නේ කෙසේද යන්න නිර්වචනය කිරීමට මෙහි සහ එහි විධාන කිහිපයක් ඇත. නමුත් දැනට, දැල්ලන් සහ සම්බා වැනි සාම්ප්රදායික ජාල සේවා අතළොස්සක් පමණක් පරිවර්තනය කර ඇත.
සේවාවක් ඉහළට පදනම් වූවක්ද?
සේවාවක් ඉහළට පදනම් වී ඇත්දැයි සොයා බැලීම සඳහා, ඔබට තත්ව විධානය ක්රියාත්මක කළ හැකිය:
status servicename
එය වේ නම් මත් වර්ජකයන්ගේ රැකියා, එය මෙම පෙන්වයි:
$ status statd
statd start/running, process 942
නමුත් එය එසේ නොවේ නම්, ඔබ මේ වගේ තවත් දෙයක් දකිනු ඇත:
$ status apache2
status: Unknown job: apache2
මෙම අවස්ථාවේ දී, උඩුමහලටapache2
පරිවර්තනය කර නොමැත . එබැවින්, අක්රීය කිරීමට ඔබ දුවන්නapache2
sudo update-rc.d apache2 disable
sudo service apache2 stop
ඉහළට සේවා (රැකියා) අක්රීය කරන්න
ඉහළ රැකියා අර්ථ දැක්වීම් වලට update-rc.d
විධානයක් නොමැත. කාර්යය අක්රීය කිරීම සඳහා, ඔබ එය අක්රිය කිරීම සඳහා රැකියා ගොනුව කෙලින්ම සංස්කරණය කළ යුතුය. මෙය කිරීමට ක්රම දෙකක් තිබේ.
ඔබට එය අතින් ආරම්භ කිරීමට තවමත් අවශ්ය නම්, එවිට ඔබට තත්වය ප්රකාශ කළ යුතුය start on
. ඔබට සම්බා ස්ථාපනය කිරීමට අවශ්ය යැයි පවසන්න , නමුත් එය ස්වයංක්රීයව ආරම්භ නොකරන්න. මෙන්න රැකියා ගොනුව (නැටි වලින්):
description "SMB/CIFS File Server"
author "Steve Langasek <steve.langasek@ubuntu.com>"
start on local-filesystems
stop on runlevel [!2345]
respawn
pre-start script
RUN_MODE="daemons"
[ -r /etc/default/samba ] && . /etc/default/samba
[ "$RUN_MODE" = inetd ] && { stop; exit 0; }
install -o root -g root -m 755 -d /var/run/samba
end script
exec smbd -F
සම්බා අක්රීය කිරීම සඳහා , ඔබට #
" start on local-filesystems
" ඉදිරිපිට තැබිය හැකිය . එය නැවත ආරම්භ කිරීමේදී ආරම්භ නොවන අතර, ඔබ තවමත් එය නැවැත්විය යුතු බව සලකන්න
sudo service smbd stop
කෙසේ වෙතත්, ඔබට කිසි විටෙකත් සම්බා ආරම්භ කිරීමට අවශ්ය නොවන්නේ නම්, ඇත්ත වශයෙන්ම පැකේජය ඉවත් කිරීමට මම යෝජනා කරමි. කෙසේ වෙතත්, ඔබට එය ස්ථාපනය කිරීමට අවශ්ය නමුත් ආරම්භ කළ නොහැකි නම්, ඔබටද මෙය කළ හැකිය:
mv /etc/init/smbd.conf /etc/init/smbd.conf.disabled
ආරම්භක / නැවතුම් ගාථාව භාවිතා කරමින් සේවාවක් අක්රීය කරන්න (11.04 වන විට)
11.04 දී ඇති උඩුමහලේ අනුවාදයෙන් ඇරඹෙන නව පදයක් start on
සහ stop on
ගාථා අක්රීය කරයි : manual
. එබැවින් 11.04 වන විට සේවාව අක්රීය කළ හැකි තවත් ක්රමයක් නම්:
echo 'manual' | sudo tee /etc/init/mysql.override
# command from root shell
echo manual >> /etc/init/mysql.override
override
රැකියා අර්ථ දැක්වීම කිසිසේත් සංස්කරණය නොකර සේවාවක් අක්රීය කිරීමට ඔබට ගොනුවක් සෑදිය හැකිය , එහි manual
මූලික පදය ඇතුළත් කිරීමෙන්.