LFCS: ການຄຸ້ມຄອງຂະບວນການແລະການບໍລິການເລີ່ມຕົ້ນຂອງລະບົບ (SysVinit, Systemd ແລະ Upstart) - ພາກທີ 7


ສອງສາມເດືອນທີ່ຜ່ານມາ, ມູນນິທິ Linux ໄດ້ປະກາດໃບຢັ້ງຢືນ LFCS (Linux Foundation Certified Sysadmin) ໃບຢັ້ງຢືນ, ເປັນໂຄງການ ໃໝ່ ທີ່ ໜ້າ ຕື່ນເຕັ້ນເຊິ່ງມີຈຸດປະສົງເພື່ອໃຫ້ບຸກຄົນຈາກທຸກພາກສ່ວນຂອງໂລກໄດ້ຮັບການຢັ້ງຢືນໃນການປະຕິບັດວຽກງານຂັ້ນພື້ນຖານໃນການບໍລິຫານລະບົບລະດັບປານກາງໃນລະບົບ Linux. ນີ້ປະກອບມີການສະ ໜັບ ສະ ໜູນ ລະບົບແລະການບໍລິການທີ່ ກຳ ລັງແລ່ນຢູ່ແລ້ວ, ພ້ອມດ້ວຍການຄົ້ນຫາແລະວິເຄາະບັນຫາດ້ວຍຕົນເອງ, ບວກກັບຄວາມສາມາດໃນການຕັດສິນໃຈເວລາທີ່ຈະຍົກບັນຫາໃຫ້ກັບບັນດາທີມວິສະວະ ກຳ.

ວິດີໂອຕໍ່ໄປນີ້ອະທິບາຍການແນະ ນຳ ໂດຍຫຍໍ້ກ່ຽວກັບໂປແກຼມການຢັ້ງຢືນມູນນິທິ Linux.

ບົດຂຽນນີ້ແມ່ນພາກທີ 7 ຂອງຊຸດ 10-tutorial, ທີ່ນີ້ໃນພາກນີ້, ພວກເຮົາຈະອະທິບາຍວິທີການຈັດການຂັ້ນຕອນແລະການບໍລິການຂອງລະບົບ Linux, ທີ່ ຈຳ ເປັນ ສຳ ລັບການສອບເສັງຢັ້ງຢືນ LFCS.

ການຄຸ້ມຄອງຂະບວນການລິເລີ່ມ Linux

ຂະບວນການບູດຂອງລະບົບ Linux ປະກອບມີຫຼາຍໄລຍະເຊິ່ງແຕ່ລະພາກສ່ວນໄດ້ສະແດງໂດຍສ່ວນປະກອບທີ່ແຕກຕ່າງກັນ. ແຜນວາດຕໍ່ໄປນີ້ສະຫຼຸບໂດຍຫຍໍ້ກ່ຽວກັບຂະບວນການບູດແລະສະແດງທຸກສ່ວນປະກອບຫຼັກທີ່ກ່ຽວຂ້ອງ.

ເມື່ອທ່ານກົດປຸ່ມ ພະລັງງານ ທີ່ຢູ່ໃນເຄື່ອງຂອງທ່ານ, ເຟີມແວທີ່ເກັບໄວ້ໃນຊິບ EEPROM ໃນເມນບອດເລີ່ມຕົ້ນ POST ( ທົດສອບພະລັງງານດ້ວຍຕົນເອງ ) ເພື່ອກວດກາເບິ່ງສະພາບຂອງຊັບພະຍາກອນຮາດແວຂອງລະບົບ. ເມື່ອ POST ສຳ ເລັດແລ້ວ, firmware ຈະຄົ້ນຫາແລະໂຫລດຕົວໂຫລດ bootload ຂັ້ນຕອນທີ 1 , ເຊິ່ງຕັ້ງຢູ່ໃນ MBR ຫຼືໃນ EFI ການແບ່ງປັນແຜ່ນຂອງແຜ່ນ ທຳ ອິດແລະໃຫ້ຄວບຄຸມມັນ.

MBR ຕັ້ງຢູ່ໃນຂະ ແໜງ ທຳ ອິດຂອງແຜ່ນທີ່ຖືກ ໝາຍ ວ່າສາມາດເລີ່ມຕົ້ນໄດ້ໃນການຕັ້ງຄ່າ BIOS ແລະມີຂະ ໜາດ 512 ໄບ.

<

  • ໜ້າ ທຳ ອິດ 446 ໄບຕ໌ : bootloader ມີທັງລະຫັດທີ່ໃຊ້ງານແລະຂໍ້ຄວາມສະແດງຂໍ້ຜິດພາດ.
  • ຕໍ່ໄປ 64 ໄບຕ໌ : ຕາຕະລາງການແບ່ງປັນມີບັນທຶກ ສຳ ລັບແຕ່ລະສີ່ພາກສ່ວນ (ຕົ້ນຕໍຫຼືຂະຫຍາຍ). ໃນບັນດາສິ່ງອື່ນໆ, ແຕ່ລະບັນທຶກສະແດງເຖິງສະຖານະພາບ (ບໍ່ເຄື່ອນໄຫວ), ຂະ ໜາດ ແລະຂະ ແໜງ ເລີ່ມຕົ້ນ/ສິ້ນສຸດຂອງແຕ່ລະພາກສ່ວນ.
  • ສຸດທ້າຍ 2 ໄບຕ໌ : ໝາຍ ເລກ magic ເຮັດ ໜ້າ ທີ່ກວດສອບຄວາມຖືກຕ້ອງຂອງ MBR.
  • ຄຳ ສັ່ງຕໍ່ໄປນີ້ ສຳ ຮອງ MBR (ໃນຕົວຢ່າງນີ້, /dev/sda ແມ່ນຮາດດິດ ທຳ ອິດ). ເອກະສານທີ່ເປັນຜົນມາແລ້ວ, mbr.bkp ສາມາດໃຊ້ໄດ້ງ່າຍຖ້າວ່າຕາຕະລາງການແບ່ງປັນກາຍເປັນການສໍ້ລາດບັງຫຼວງ, ຍົກຕົວຢ່າງ, ເຮັດໃຫ້ລະບົບບໍ່ສາມາດເຮັດວຽກໄດ້.

    ແນ່ນອນວ່າ, ເພື່ອ ນຳ ໃຊ້ມັນໃນພາຍຫຼັງຖ້າມີຄວາມຕ້ອງການເກີດຂື້ນ, ພວກເຮົາ ຈຳ ເປັນຕ້ອງເກັບມັນໄວ້ແລະເກັບໄວ້ບ່ອນອື່ນ (ເຊັ່ນວ່າຂັບລົດ USB , ຍົກຕົວຢ່າງ). ເອກະສານນັ້ນຈະຊ່ວຍໃຫ້ພວກເຮົາຟື້ນຟູ MBR ແລະຈະເຮັດໃຫ້ພວກເຮົາກັບໄປອີກຄັ້ງຖ້າແລະຖ້າພວກເຮົາບໍ່ປ່ຽນຮູບແບບຮາດດິດໃນເວລາດຽວກັນ.

    # dd if=/dev/sda of=mbr.bkp bs=512 count=1
    
    # dd if=mbr.bkp of=/dev/sda bs=512 count=1
    

    ສຳ ລັບລະບົບທີ່ ນຳ ໃຊ້ວິທີການ EFI / UEFI , firmware ຂອງ UEFI ອ່ານການຕັ້ງຄ່າຂອງມັນເພື່ອ ກຳ ນົດວ່າໂປແກຼມ UEFI ຈະຖືກ ນຳ ໃຊ້ແລະຈາກບ່ອນໃດ (ຕົວຢ່າງ: ໃນແຜ່ນແລະການແບ່ງປັນສ່ວນໃດສ່ວນ ໜຶ່ງ ສ່ວນແບ່ງ EFI ຕັ້ງຢູ່).

    ຖັດໄປ, ລະບົບ bootloader ຂັ້ນຕອນທີ 2 (ຜູ້ຈັດການເກີບ boot) (aka boot manager) ຖືກໂຫລດແລະແລ່ນ. GRUB [ GRand Unified Boot ] ແມ່ນຜູ້ຈັດການເກີບທີ່ໃຊ້ເລື້ອຍໆໃນ Linux. ໜຶ່ງ ໃນສອງຮຸ່ນທີ່ແຕກຕ່າງກັນສາມາດພົບໄດ້ໃນລະບົບສ່ວນໃຫຍ່ທີ່ໃຊ້ໃນປະຈຸບັນ.

    <

  • ເອກະສານການຕັ້ງຄ່າມໍລະດົກ GRUB : /boot/grub/menu.lst (ການແຈກຈ່າຍເກົ່າ, ບໍ່ໄດ້ຮັບການສະ ໜັບ ສະ ໜູນ ຈາກ EFI/UEFI firmwares).
  • ເອກະສານການຕັ້ງຄ່າ GRUB2 ທີ່ສຸດ, ແລະ/etc/default/grub.
  • ເຖິງແມ່ນວ່າຈຸດປະສົງຂອງການສອບເສັງ LFCS ບໍ່ໄດ້ຮ້ອງຂໍຄວາມຮູ້ຢ່າງຈະແຈ້ງກ່ຽວກັບພາຍໃນ GRUB , ຖ້າທ່ານກ້າຫານແລະສາມາດຕອບສະ ໜອງ ລະບົບຂອງທ່ານ (ທ່ານອາດຈະຕ້ອງການທົດລອງໃຊ້) ກ່ອນອື່ນ ໝົດ ໃນເຄື່ອງ virtual, ພຽງແຕ່ໃນກໍລະນີ), ທ່ານ ຈຳ ເປັນຕ້ອງແລ່ນ.

    # update-grub
    

    ເປັນ ຮາກ ຫຼັງຈາກດັດແປງການຕັ້ງຄ່າຂອງ GRUB ເພື່ອ ນຳ ໃຊ້ການປ່ຽນແປງ.

    ໂດຍພື້ນຖານແລ້ວ, GRUB ໂຫຼດແບບ ແກ່ນ ແລະຮູບພາບ ເລີ່ມຕົ້ນ ຫຼື ເລີ່ມຕົ້ນ . ໃນສອງສາມ ຄຳ ສັບ, initrd ຫລື initramfs ຊ່ວຍໃນການປະຕິບັດການກວດພົບຮາດແວ, ການໂຫຼດແບບໂມດູນຂອງ kernel ແລະການຄົ້ນພົບອຸປະກອນທີ່ ຈຳ ເປັນເພື່ອໃຫ້ມີລະບົບແຟ້ມລະບົບຮາກທີ່ແທ້ຈິງ.

    ເມື່ອລະບົບແຟ້ມເອກະສານທີ່ແທ້ຈິງຖືກສ້າງຂຶ້ນ, kernel ປະຕິບັດລະບົບແລະຜູ້ຈັດການບໍລິການ ( init ຫຼື systemd , ເຊິ່ງການ ກຳ ນົດຂັ້ນຕອນຫຼື PID ແມ່ນສະ ເໝີ 1) ເພື່ອເລີ່ມຕົ້ນຜູ້ໃຊ້ປົກກະຕິ - space boot process ເພື່ອ ນຳ ສະ ເໜີ ການໂຕ້ຕອບຂອງຜູ້ໃຊ້.

    ທັງ init ແລະ systemd ແມ່ນ daemons (ຂະບວນການພື້ນຫລັງ) ທີ່ຈັດການ daemons ອື່ນໆ, ເປັນການບໍລິການ ທຳ ອິດທີ່ເລີ່ມຕົ້ນ (ໃນຊ່ວງ boot) ແລະບໍລິການສຸດທ້າຍທີ່ຈະສິ້ນສຸດ (ໃນລະຫວ່າງການປິດ).

    ບໍລິການເລີ່ມຕົ້ນ (SysVinit)

    ແນວຄວາມຄິດຂອງ runlevels ໃນ Linux ກຳ ນົດວິທີການຕ່າງໆໃນການ ນຳ ໃຊ້ລະບົບໂດຍຄວບຄຸມບໍລິການໃດທີ່ ກຳ ລັງໃຊ້ງານຢູ່. ເວົ້າອີກຢ່າງ ໜຶ່ງ, ລະດັບ runlevel ຄວບຄຸມວຽກໃດທີ່ສາມາດເຮັດ ສຳ ເລັດໃນສະພາບການປະຕິບັດໃນປະຈຸບັນ = runlevel (ແລະອັນໃດທີ່ບໍ່ສາມາດເຮັດໄດ້).

    ຕາມປະເພນີ, ຂະບວນການເລີ່ມຕົ້ນນີ້ໄດ້ຖືກປະຕິບັດໂດຍອີງໃສ່ສົນທິສັນຍາທີ່ມີຕົ້ນ ກຳ ເນີດມາຈາກ System V UNIX ໂດຍມີລະບົບຜ່ານການປະຕິບັດການລວບລວມສະຄິບທີ່ເລີ່ມຕົ້ນແລະຢຸດການບໍລິການຍ້ອນວ່າເຄື່ອງເຂົ້າລະດັບສະເພາະ (ຊຶ່ງໃນ ຄຳ ສັບອື່ນ) , ແມ່ນຮູບແບບທີ່ແຕກຕ່າງກັນຂອງການເຮັດວຽກລະບົບ).

    ພາຍໃນລະດັບຂອງແຕ່ລະລະດັບ, ການບໍລິການສ່ວນບຸກຄົນສາມາດຖືກ ກຳ ນົດໃຫ້ ດຳ ເນີນການ, ຫລືຈະຖືກປິດຖ້າແລ່ນ. ຮຸ່ນຫຼ້າສຸດຂອງການແຈກຢາຍທີ່ ສຳ ຄັນ ຈຳ ນວນ ໜຶ່ງ ກຳ ລັງຍ້າຍອອກໄປຈາກມາດຕະຖານ System V ເພື່ອໃຫ້ມີການບໍລິການແລະຜູ້ຈັດການລະບົບ ໃໝ່ ທີ່ດີກວ່າເອີ້ນວ່າ ລະບົບ (ເຊິ່ງ ໝາຍ ເຖິງ daemon ຂອງລະບົບ), ແຕ່ຕາມປົກກະຕິ ສະ ໜັບ ສະ ໜູນ ຄຳ ສັ່ງ sysv ສຳ ລັບຈຸດປະສົງທີ່ເຂົ້າກັນໄດ້. ນີ້ ໝາຍ ຄວາມວ່າທ່ານສາມາດໃຊ້ເຄື່ອງມື init ຫຼາຍທີ່ສຸດທີ່ມີຊື່ສຽງໃນການແຈກຢາຍທີ່ອີງໃສ່ລະບົບ.

    ອ່ານຍັງ : ເປັນຫຍັງ ‘systemd’ ແທນ ‘init’ ໃນ Linux

    ນອກ ເໜືອ ຈາກການເລີ່ມຕົ້ນຂັ້ນຕອນລະບົບ, init ເບິ່ງ ໜ້າ ເອກະສານ /etc/inittab ເພື່ອຕັດສິນໃຈວ່າລະດັບ runlevel ຈະຕ້ອງຖືກໃສ່.

    ເພື່ອປ່ຽນລະຫວ່າງ runlevels, ພວກເຮົາພຽງແຕ່ສາມາດອອກການປ່ຽນແປງ runlevel ໂດຍໃຊ້ ຄຳ ສັ່ງ init : init N (ບ່ອນທີ່ N ແມ່ນ ໜຶ່ງ ໃນລະດັບ runlevel ທີ່ລະບຸໄວ້ຂ້າງເທິງ). ກະລຸນາຮັບຊາບວ່ານີ້ບໍ່ແມ່ນວິທີທີ່ແນະ ນຳ ໃນການ ນຳ ໃຊ້ລະບົບການແລ່ນໄປຫາ runlevel ທີ່ແຕກຕ່າງກັນເພາະມັນບໍ່ໄດ້ແຈ້ງເຕືອນໃຫ້ຜູ້ໃຊ້ທີ່ເຂົ້າໃຊ້ງານຢູ່ໃນລະບົບທີ່ມີຢູ່ (ດັ່ງນັ້ນເຮັດໃຫ້ພວກເຂົາສູນເສຍວຽກແລະຂະບວນການຕ່າງໆທີ່ຈະສິ້ນສຸດລົງຜິດປົກກະຕິ).

    ແທນທີ່, ຄຳ ສັ່ງ ປິດ ຄວນຖືກ ນຳ ໃຊ້ເພື່ອເລີ່ມຕົ້ນລະບົບ (ເຊິ່ງ ທຳ ອິດສົ່ງຂໍ້ຄວາມເຕືອນໃຫ້ຜູ້ໃຊ້ທີ່ເຂົ້າໃຊ້ງານທັງ ໝົດ ແລະຂັດຂວາງການເຂົ້າສູ່ລະບົບຕໍ່ໄປ; ມັນຈະເຮັດໃຫ້ສັນຍານເລີ່ມປ່ຽນລະດັບຄວາມໄວ); ເຖິງຢ່າງໃດກໍ່ຕາມ, ລະດັບເລີ່ມຕົ້ນ (ລະບົບທີ່ລະບົບຈະເລີ່ມຕົ້ນ) ຕ້ອງໄດ້ຖືກດັດແກ້ຢູ່ໃນເອກະສານ /etc/inittab ກ່ອນ.

    ດ້ວຍເຫດຜົນດັ່ງກ່າວ, ໃຫ້ປະຕິບັດຕາມຂັ້ນຕອນເຫຼົ່ານີ້ເພື່ອປ່ຽນລະຫວ່າງ runlevels, ເປັນຮາກ, ຊອກຫາເສັ້ນຕໍ່ໄປນີ້ໃນ /etc/inittab .

    id:2:initdefault:
    

    ແລະປ່ຽນ ຈຳ ນວນ 2 ສຳ ລັບລະດັບທີ່ຕ້ອງການກັບຕົວແກ້ໄຂຕົວ ໜັງ ສືທີ່ທ່ານຕ້ອງການ, ເຊັ່ນ: vim (ອະທິບາຍໃນວິທີການ ນຳ ໃຊ້ບັນນາທິການ vi/vim ໃນ Linux - ພາກທີ 2 ຂອງຊຸດນີ້).

    ຕໍ່ໄປ, ດໍາເນີນການເປັນຮາກ.

    # shutdown -r now
    

    ຄຳ ສັ່ງ ສຸດທ້າຍ ນີ້ຈະເຮັດໃຫ້ລະບົບເລີ່ມຕົ້ນ ໃໝ່, ເຮັດໃຫ້ມັນເລີ່ມຕົ້ນໃນລະດັບທີ່ ກຳ ນົດໄວ້ໃນລະຫວ່າງການໃສ່ເກີບຕໍ່ໄປ, ແລະມັນຈະເຮັດວຽກສະຄິບທີ່ຕັ້ງຢູ່ໃນ /etc/rccriberunlevel ສໍາລັບ.d ໄດເລກະທໍລີເພື່ອຕັດສິນໃຈວ່າບໍລິການໃດຄວນເລີ່ມຕົ້ນແລະບໍລິການໃດທີ່ບໍ່ຄວນ. ຍົກຕົວຢ່າງ, ສຳ ລັບ runlevel 2 ໃນລະບົບຕໍ່ໄປນີ້.

    ເພື່ອເປີດຫຼືປິດການບໍລິການລະບົບໃນລະບົບບູດ, ພວກເຮົາຈະໃຊ້ ຄຳ ສັ່ງ chkconfig ໃນ CentOS/openSUSE ແລະ sysv-rc-conf ໃນ Debian ແລະອະນຸພັນ. ເຄື່ອງມືນີ້ຍັງສາມາດສະແດງໃຫ້ພວກເຮົາຮູ້ວ່າສະພາບການບໍລິການທີ່ໄດ້ ກຳ ນົດໄວ້ລ່ວງ ໜ້າ ສຳ ລັບລະດັບສະເພາະແມ່ນຫຍັງ.

    ອ່ານຍັງ : ວິທີການຢຸດແລະປິດການບໍລິການທີ່ບໍ່ຕ້ອງການໃນ Linux

    ລາຍຊື່ການຕັ້ງຄ່າ runlevel ສຳ ລັບການບໍລິການ.

    # chkconfig --list [service name]
    # chkconfig --list postfix
    # chkconfig --list mysqld
    

    ໃນຮູບພາບຂ້າງເທິງນີ້ພວກເຮົາສາມາດເຫັນໄດ້ວ່າ postfix ຖືກ ກຳ ນົດໃຫ້ເລີ່ມຕົ້ນເມື່ອລະບົບເຂົ້າສູ່ລະດັບລະດັບ 2 ຜ່ານ 5 , ໃນຂະນະທີ່ mysqld ຈະເຮັດວຽກໂດຍຄ່າເລີ່ມຕົ້ນ ສຳ ລັບ runlevels 2 ຜ່ານ 4 . ຕອນນີ້ສົມມຸດວ່ານີ້ບໍ່ແມ່ນພຶດຕິ ກຳ ທີ່ຄາດໄວ້.

    ຕົວຢ່າງ, ພວກເຮົາ ຈຳ ເປັນຕ້ອງເປີດ mysqld ສຳ ລັບ runlevel 5 ເຊັ່ນດຽວກັນ, ແລະປິດ postfix ສຳ ລັບ runlevels 4 ແລະ 5. ນີ້ແມ່ນສິ່ງທີ່ພວກເຮົາຈະເຮັດໃນແຕ່ລະກໍລະນີ (run the ປະຕິບັດຕາມ ຄຳ ສັ່ງທີ່ເປັນຮາກ).

    # chkconfig --level [level(s)] service on
    # chkconfig --level 5 mysqld on
    
    # chkconfig --level [level(s)] service off
    # chkconfig --level 45 postfix off
    

    ດຽວນີ້ພວກເຮົາຈະປະຕິບັດວຽກທີ່ຄ້າຍຄືກັນໃນລະບົບ ອີງໃສ່ Debian-based ໂດຍໃຊ້ sysv-rc-conf .

    ການຕັ້ງຄ່າການບໍລິການເພື່ອເລີ່ມຕົ້ນໂດຍອັດຕະໂນມັດໃນລະດັບສະເພາະແລະປ້ອງກັນບໍ່ໃຫ້ມັນເລີ່ມຕົ້ນຈາກທຸກຢ່າງອື່ນ.

    1. ໃຫ້ໃຊ້ ຄຳ ສັ່ງຕໍ່ໄປນີ້ເພື່ອເບິ່ງວ່າແມ່ນຫຍັງຄືລະດັບທີ່ mdadm ຖືກຕັ້ງຄ່າເພື່ອເລີ່ມຕົ້ນ.

    # ls -l /etc/rc[0-6].d | grep -E 'rc[0-6]|mdadm'
    

    2. ພວກເຮົາຈະໃຊ້ sysv-rc-conf ເພື່ອປ້ອງກັນ mdadm ຈາກການເລີ່ມຕົ້ນລະດັບຍົກເວັ້ນທັງ ໝົດ 2 . ພຽງແຕ່ກວດເບິ່ງຫລືຍົກເລີກ (ມີແຖບຊ່ອງ) ຕາມຄວາມຕ້ອງການ (ທ່ານສາມາດຍ້າຍຂຶ້ນ, ລົງ, ຊ້າຍແລະຂວາດ້ວຍປຸ່ມລູກສອນ).

    # sysv-rc-conf
    

    ຈາກນັ້ນກົດ q ເພື່ອເຊົາ.

    3. ພວກເຮົາຈະເລີ່ມລະບົບ ໃໝ່ ແລະແລ່ນ ຄຳ ສັ່ງອີກຄັ້ງຈາກ ຂັ້ນຕອນທີ 1 .

    # ls -l /etc/rc[0-6].d | grep -E 'rc[0-6]|mdadm'
    

    ໃນຮູບຂ້າງເທິງນີ້ພວກເຮົາສາມາດເຫັນໄດ້ວ່າ mdadm ຖືກຕັ້ງຄ່າໃຫ້ເລີ່ມຕົ້ນໃນລະດັບ 2 ເທົ່ານັ້ນ.

    ຈະເປັນແນວໃດກ່ຽວກັບ systemd?

    systemd ແມ່ນບໍລິການແລະຜູ້ຈັດການລະບົບອື່ນທີ່ໄດ້ຖືກຮັບຮອງເອົາໂດຍການແຈກຈ່າຍ Linux ຈຳ ນວນຫລາຍ. ມັນມີຈຸດປະສົງທີ່ຈະອະນຸຍາດໃຫ້ມີການປະມວນຜົນເພີ່ມເຕີມໃນຂະຫນານໃນລະຫວ່າງການເລີ່ມຕົ້ນຂອງລະບົບ (ບໍ່ຄືກັບ sysvinit , ເຊິ່ງມັກຈະມີຄວາມຊ້າກ່ວາເກົ່າເພາະວ່າມັນເລີ່ມຕົ້ນການປະມວນຜົນແຕ່ລະຄັ້ງໃນເວລາດຽວກັນ, ກວດເບິ່ງວ່າມັນຂື້ນກັບອີກ, ແລະລໍຖ້າ daemons ໃນການເປີດຕົວເພື່ອໃຫ້ມີການບໍລິການຫຼາຍຂຶ້ນສາມາດເລີ່ມຕົ້ນ), ແລະເປັນການບໍລິຫານຊັບພະຍາກອນແບບເຄື່ອນໄຫວໃຫ້ກັບລະບົບແລ່ນ.

    ດັ່ງນັ້ນ, ການບໍລິການແມ່ນເລີ່ມຕົ້ນໃນເວລາທີ່ຕ້ອງການ (ເພື່ອຫລີກລ້ຽງການໃຊ້ຊັບພະຍາກອນຂອງລະບົບ) ແທນທີ່ຈະຖືກເປີດຕົວໂດຍບໍ່ມີເຫດຜົນທີ່ ໜັກ ແໜ້ນ ໃນລະຫວ່າງການໃສ່ເກີບ.

    ເບິ່ງສະຖານະຂອງທຸກຂະບວນການທີ່ ກຳ ລັງເຮັດວຽກຢູ່ໃນລະບົບຂອງທ່ານ, ທັງ systemd native ແລະບໍລິການ SysV , ດຳ ເນີນການ ຄຳ ສັ່ງຕໍ່ໄປນີ້.

    # systemctl
    

    ຄໍ ລຳ ຍົກສູງ ສະແດງວ່າ ຄຳ ນິຍາມຂອງຫົວ ໜ່ວຍ (ອ້າງອີງເຖິງຖັນ UNIT ທີ່ສະແດງການບໍລິການຫຼືສິ່ງໃດແດ່ທີ່ຖືກຮັກສາໄວ້ໂດຍລະບົບ) ຖືກໂຫລດໃຫ້ຖືກຕ້ອງ, ໃນຂະນະທີ່ ACTIVE ແລະຖັນ SUB ສະແດງສະຖານະພາບປະຈຸບັນຂອງ ໜ່ວຍ ງານດັ່ງກ່າວ.

    ເມື່ອຄໍ ລຳ ກິດຈະ ກຳ ຊີ້ໃຫ້ເຫັນວ່າສະຖານະຂອງ ໜ່ວຍ ງານແມ່ນນອກ ເໜືອ ຈາກການເຄື່ອນໄຫວ, ພວກເຮົາສາມາດກວດເບິ່ງວ່າມີຫຍັງເກີດຂື້ນໂດຍໃຊ້.

    # systemctl status [unit]
    

    ຕົວຢ່າງເຊັ່ນໃນຮູບຂ້າງເທິງ, media-samba.mount ແມ່ນຢູ່ໃນສະພາບທີ່ລົ້ມເຫລວ. ໃຫ້ແລ່ນໄປ.

    # systemctl status media-samba.mount
    

    ພວກເຮົາສາມາດເຫັນໄດ້ວ່າ media-samba.mount ລົ້ມເຫລວເພາະວ່າຂະບວນການຕິດຕັ້ງເທິງ host dev1 ບໍ່ສາມາດຊອກຫາສ່ວນແບ່ງເຄືອຂ່າຍໄດ້ທີ່ //192.168.0.10/gacanepa .

    ການເລີ່ມຕົ້ນຫຼືການຢຸດບໍລິການ

    ເມື່ອການແບ່ງປັນເຄືອຂ່າຍ //192.168.0.10/gacanepa ສາມາດທົດລອງເລີ່ມຕົ້ນ, ຫຼັງຈາກນັ້ນຢຸດ, ແລະສຸດທ້າຍກໍ່ເລີ່ມຄືນ ໃໝ່ media-samba.mount . ຫຼັງຈາກປະຕິບັດການປະຕິບັດແຕ່ລະຄັ້ງ, ໃຫ້ໃຊ້ລະບົບ systemctl status media-samba.mount ເພື່ອກວດເບິ່ງສະຖານະຂອງມັນ.

    # systemctl start media-samba.mount
    # systemctl status media-samba.mount
    # systemctl stop media-samba.mount
    # systemctl restart media-samba.mount
    # systemctl status media-samba.mount
    

    ພາຍໃຕ້ systemd ທ່ານສາມາດເປີດໃຊ້ບໍລິການຫຼືປິດການບໍລິການເມື່ອມັນໃສ່ເກີບ.

    # systemctl enable [service] 		# enable a service 
    # systemctl disable [service] 		# prevent a service from starting at boot
    

    ຂັ້ນຕອນການເປີດໃຊ້ງານຫຼືການປິດການບໍລິການເພື່ອເລີ່ມຕົ້ນການໃສ່ເກີບໂດຍອັດຕະໂນມັດລວມມີການເພີ່ມຫລື ກຳ ຈັດການເຊື່ອມຕໍ່ທີ່ເປັນສັນຍາລັກຢູ່ໃນລະບົບ /etc/systemd/system/multi-user.target.wants .

    ອີກທາງເລືອກ ໜຶ່ງ, ທ່ານສາມາດຊອກຫາສະຖານະການບໍລິການຂອງປະຈຸບັນ (ເປີດໃຊ້ງານຫຼືພິການ) ໂດຍມີ ຄຳ ສັ່ງ.

    # systemctl is-enabled [service]
    

    ຍົກຕົວຢ່າງ,

    # systemctl is-enabled postfix.service
    

    ນອກຈາກນັ້ນ, ທ່ານສາມາດ reboot ຫຼືປິດລະບົບດ້ວຍ.

    # systemctl reboot
    # systemctl shutdown
    

    ຂຶ້ນໄປ

    Upstart ແມ່ນການປ່ຽນແທນໂດຍອີງຕາມເຫດການ ສຳ ລັບ daemon /sbin/init ແລະເກີດມາຈາກຄວາມ ຈຳ ເປັນໃນການເລີ່ມຕົ້ນການບໍລິການເທົ່ານັ້ນ, ເມື່ອມີຄວາມ ຈຳ ເປັນ (ເບິ່ງແຍງພວກເຂົາໃນຂະນະທີ່ພວກເຂົາຕ້ອງການ) ກໍາລັງແລ່ນ), ແລະຈັດການເຫດການທີ່ເກີດຂື້ນ, ດັ່ງນັ້ນຈຶ່ງລື່ນກາຍລະບົບ sysvinit ແບບເກົ່າແກ່ທີ່ເພິ່ງພາອາໄສ.

    ມັນຖືກພັດທະນາໃນເບື້ອງຕົ້ນ ສຳ ລັບການແຈກຈ່າຍ Ubuntu, ແຕ່ຖືກ ນຳ ໃຊ້ໃນ Red Hat Enterprise Linux 6.0. ເຖິງແມ່ນວ່າມັນມີຈຸດປະສົງເພື່ອໃຫ້ ເໝາະ ສົມກັບການປະຕິບັດການແຈກຢາຍ Linux ທັງ ໝົດ ເພື່ອເປັນການທົດແທນ sysvinit , ໃນເວລານັ້ນມັນຖືກມອງຂ້າມໂດຍ ລະບົບ ໃນວັນທີ 14 ເດືອນກຸມພາປີ 2014, Mark Shuttleworth (ຜູ້ກໍ່ຕັ້ງບໍລິສັດ Canonical Ltd. ) ໄດ້ປະກາດວ່າການປ່ອຍ Ubuntu ໃນອະນາຄົດຈະໃຊ້ລະບົບເປັນ daemon init ເລີ່ມຕົ້ນ.

    ເນື່ອງຈາກວ່າສະຄິບທີ່ເລີ່ມຕົ້ນ SysV ສຳ ລັບລະບົບແມ່ນມີຢູ່ເລື້ອຍໆແລ້ວ, ຊຸດຊອບແວ ຈຳ ນວນຫຼວງຫຼາຍປະກອບມີສະຄິບເລີ່ມຕົ້ນຂອງ SysV. ເພື່ອຮອງຮັບການຫຸ້ມຫໍ່ດັ່ງກ່າວ, Upstart ໃຫ້ຮູບແບບການເຂົ້າກັນໄດ້: ມັນໃຊ້ສະຄິບເລີ່ມຕົ້ນຂອງ SysV ໃນສະຖານທີ່ປົກກະຕິ ( /etc/rc.d/rc?.d , /etc/init.d/ rc? .d , /etc/rc?.d , ຫຼືສະຖານທີ່ທີ່ຄ້າຍຄືກັນ). ດັ່ງນັ້ນ, ຖ້າພວກເຮົາຕິດຕັ້ງແພັກເກດທີ່ຍັງບໍ່ທັນລວມເອົາ script ຕັ້ງຄ່າ Upstart, ມັນຍັງຄວນເປີດໃຊ້ເປັນປົກກະຕິ.

    ຍິ່ງໄປກວ່ານັ້ນ, ຖ້າພວກເຮົາໄດ້ຕິດຕັ້ງອຸປະກອນຕ່າງໆເຊັ່ນ: chkconfig, ທ່ານຄວນຈະສາມາດໃຊ້ພວກມັນເພື່ອຈັດການບໍລິການທີ່ອີງໃສ່ SysV ຂອງທ່ານຄືກັບທີ່ພວກເຮົາຈະໃຊ້ລະບົບ sysvinit.

    ສະຄິບ Upstart ຍັງສະ ໜັບ ສະ ໜູນ ການເລີ່ມຕົ້ນຫຼືຢຸດການບໍລິການໂດຍອີງໃສ່ການກະ ທຳ ທີ່ກວ້າງຂວາງກ່ວາສະຄິບເລີ່ມຕົ້ນຂອງ SysV; ຍົກຕົວຢ່າງ, Upstart ສາມາດເປີດໃຊ້ບໍລິການທຸກຄັ້ງທີ່ມີອຸປະກອນຮາດແວໂດຍສະເພາະ.

    ລະບົບທີ່ໃຊ້ Upstart ແລະສະຄິບພື້ນເມືອງຂອງມັນປ່ຽນແທນເອກະສານ /etc/inittab ໂດຍສະເພາະແລະບັນດາທິດທາງຂອງອັກສອນເລີ່ມຕົ້ນ SysV ດ້ວຍ .conf ສະຄິບໃນລະບົບ /etc/init .

    ຕົວອັກສອນເຫຼົ່ານີ້ * .conf (ທີ່ເອີ້ນວ່າ ຄຳ ນິຍາມວຽກ) ໂດຍທົ່ວໄປປະກອບມີດັ່ງຕໍ່ໄປນີ້:

    < <

  • ລາຍລະອຽດຂອງຂັ້ນຕອນ.
  • Runlevels ບ່ອນທີ່ຂະບວນການຄວນຈະ ດຳ ເນີນງານຫຼືເຫດການທີ່ຄວນກໍ່ໃຫ້ເກີດຂື້ນ.
  • ລະດັບຄວາມໄວທີ່ຄວນຢຸດຂະບວນການຫຼືເຫດການທີ່ຄວນຢຸດມັນ.
  • ທາງເລືອກ.
  • ສັ່ງໃຫ້ເປີດຂະບວນການ.
  • ຍົກຕົວຢ່າງ,

    # My test service - Upstart script demo description "Here goes the description of 'My test service'" author "Dave Null <[email >"
    # Stanzas
    
    #
    # Stanzas define when and how a process is started and stopped
    # See a list of stanzas here: http://upstart.ubuntu.com/wiki/Stanzas#respawn
    # When to start the service
    start on runlevel [2345]
    # When to stop the service
    stop on runlevel [016]
    # Automatically restart process in case of crash
    respawn
    # Specify working directory
    chdir /home/dave/myfiles
    # Specify the process/command (add arguments if needed) to run
    exec bash backup.sh arg1 arg2
    

    ເພື່ອປະຕິບັດການປ່ຽນແປງ, ທ່ານ ຈຳ ເປັນຕ້ອງບອກ upstart ໃຫ້ໂຫລດການຕັ້ງຄ່າຂອງມັນ.

    # initctl reload-configuration
    

    ຈາກນັ້ນເລີ່ມຕົ້ນເຮັດວຽກຂອງທ່ານໂດຍການພິມ ຄຳ ສັ່ງຕໍ່ໄປນີ້.

    $ sudo start yourjobname
    

    ບ່ອນທີ່ yourjobname ແມ່ນຊື່ຂອງວຽກທີ່ຖືກເພີ່ມກ່ອນ ໜ້າ ນີ້ດ້ວຍອັກສອນ yourjobname.conf .

    ຄູ່ມືການອ້າງອີງທີ່ສົມບູນແລະລະອຽດກວ່າ ສຳ ລັບ Upstart ແມ່ນມີຢູ່ໃນເວບໄຊທ໌ຂອງໂຄງການພາຍໃຕ້ລາຍການ“ Cookbook”.

    ບົດສະຫຼຸບ

    ຄວາມຮູ້ກ່ຽວກັບຂະບວນການບູດ Linux ແມ່ນມີຄວາມ ຈຳ ເປັນທີ່ຈະຊ່ວຍທ່ານໃນການແກ້ໄຂບັນຫາຕ່າງໆພ້ອມທັງການປັບການເຮັດວຽກຂອງຄອມພິວເຕີ້ແລະການບໍລິການທີ່ແລ່ນຢູ່ກັບຄວາມຕ້ອງການຂອງທ່ານ.

    ໃນບົດຂຽນນີ້ພວກເຮົາໄດ້ວິເຄາະວ່າມີຫຍັງເກີດຂື້ນຕັ້ງແຕ່ເວລາທີ່ທ່ານກົດປຸ່ມ ພະລັງງານ ເພື່ອເປີດເຄື່ອງຈົນກວ່າທ່ານຈະໄດ້ຮັບອິນເຕີເຟດຜູ້ໃຊ້ທີ່ໃຊ້ງານໄດ້ເຕັມທີ່. ຂ້າພະເຈົ້າຫວັງວ່າທ່ານຈະໄດ້ຮຽນຮູ້ການອ່ານມັນຫຼາຍເທົ່າທີ່ຂ້ອຍໄດ້ເຮັດໃນຂະນະທີ່ວາງມັນເຂົ້າກັນ. ຮູ້ສຶກວ່າບໍ່ເສຍຄ່າທີ່ຈະອອກ ຄຳ ເຫັນຫລື ຄຳ ຖາມຂອງທ່ານຂ້າງລຸ່ມນີ້. ພວກເຮົາຫວັງວ່າຈະໄດ້ຍິນຈາກຜູ້ອ່ານຂອງພວກເຮົາ!