ນີ້ແມ່ນຄໍາສັ່ງ inotify-hookablep ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍໆບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
inotify-hookable - ຂັດຂວາງການໂຕ້ຕອບເສັ້ນຄໍາສັ່ງເພື່ອ inotify
ສະຫຼຸບສັງລວມ
ເບິ່ງໄດເລກະທໍລີ, ບອກພວກເຮົາເມື່ອສິ່ງທີ່ມີການປ່ຽນແປງໃນມັນ:
inotify-hookable --watch-directories /tmp/watch-this
ເບິ່ງຕົ້ນໄມ້ git, ການຕັ້ງຄ່າບາງຢ່າງ, ແລະບ່ອນເກັບມ້ຽນຂອງຊັບສິນຄົງທີ່, restart webserver
ຫຼືບີບອັດຊັບສິນເຫຼົ່ານັ້ນ ຖ້າມີອັນໃດປ່ຽນແປງ:
inotify-hookable \
--watch-directories /etc/uwsgi \
--watch-directories /git_tree/central \
--watch-directories /etc/app-config \
--watch-directories /git_tree/static_assets \
--on-modify-path-command "^(/etc/uwsgi|/git_tree/central|/etc/app-config)=sudo /etc/init.d/uwsgi restart" \
--on-modify-path-command "^/git_tree/static_assets=(cd /git_tree/static_assets && compress_static_assets)"
ຫຼືເບິ່ງໄຟລ໌ສະເພາະ:
inotify-hookable \
--watch-files /var/www/cgi-bin/mod_perl_handler \
--on-modify-command "apachectl restart"
ລາຍລະອຽດ
ໂປລແກລມບັນທັດຄໍາສັ່ງທີ່ງ່າຍດາຍນີ້ແມ່ນການທົດແທນຂອງຂ້ອຍສໍາລັບຫນ້າທີ່ສະເຫນີໂດຍ
Plack's Filesys::Notify::Simple. ຂ້າ ພະ ເຈົ້າ ໄດ້ ພົບ ເຫັນ ວ່າ ໃນ ຕົ້ນ ໄມ້ git ຂະ ຫນາດ ໃຫຍ່ ທີ່ ສຸດ Plack ຈະ ໃຊ້ ເວ ລາ ເປັນ
ຈໍານວນ inordinate ສັງເກດເບິ່ງລະບົບໄຟລ໌ສໍາລັບການປ່ຽນແປງ.
ໂປຣແກຣມນີ້ໃຊ້ Linux::Inotify2, ດັ່ງນັ້ນ kernel ຈະແຈ້ງເຕືອນມັນ ທັນທີ ໃນເວລາທີ່ບາງສິ່ງບາງຢ່າງ
ການປ່ຽນແປງ (ທີ່ຈິງແລ້ວມັນໄວຫຼາຍທີ່ພວກເຮົາຕ້ອງເຮັດວຽກກ່ຽວກັບການໄວປານໃດມັນສົ່ງໃຫ້ພວກເຮົາເຫດການ).
ຜົນໄດ້ຮັບແມ່ນວ່າທ່ານສາມາດດໍາເນີນການນີ້ຕົວຢ່າງໃນກອງປະຊຸມຫນ້າຈໍແລະໃຫ້ມັນເບິ່ງຂອງທ່ານ
ສະພາບແວດລ້ອມການພັດທະນາ, ແລະເຄື່ອງແມ່ຂ່າຍເວັບໄຊຕ໌ຂອງທ່ານຈະເລີ່ມຕົ້ນໃຫມ່ກ່ອນທີ່ຈະນິ້ວມືຂອງທ່ານ
ໃບ save ປຸ່ມ.
vim ແລະ emacs ໄຟລ໌ຊົ່ວຄາວຖືກລະເລີຍໂດຍຄ່າເລີ່ມຕົ້ນ (ເບິ່ງ "--ignore-paths".) ດັ່ງນັ້ນທ່ານສາມາດ
ແກ້ໄຂໄຟລ໌ຂອງທ່ານໂດຍທີ່ເຄື່ອງແມ່ຂ່າຍຂອງທ່ານ restart ໂດຍບໍ່ຈໍາເປັນ.
ໃນປັດຈຸບັນການໂຕ້ຕອບເສັ້ນຄໍາສັ່ງສໍາລັບການນີ້ແມ່ນອັນດຽວທີ່ເຮັດໃຫ້ຄວາມຮູ້ສຶກຢ່າງແທ້ຈິງ,
ໂມດູນນີ້ຖືກປິດກັ້ນທັງຫມົດ (ເຖິງແມ່ນວ່າມັນອາດຈະດໍາເນີນການໃນຂະບວນການອື່ນໂດຍຜ່ານ
POE ຫຼືບາງສິ່ງບາງຢ່າງ). Patches ຍິນດີຕ້ອນຮັບ.
OPTIONS
ໃຫ້ສັງເກດວ່າຕົວເລືອກ boolean ສາມາດຖືກປະຕິເສດດ້ວຍ "--no-OPTION", ເຊັ່ນ: "--no-r" ຫຼື
"--no-recursive" ເພື່ອປິດຕົວເລືອກ "--recursive" ທີ່ເປີດໂດຍຄ່າເລີ່ມຕົ້ນ.
"-w" or "--ເບິ່ງ-ໄດເລກະທໍລີ"
ລະບຸອັນນີ້ເພື່ອເບິ່ງໄດເລກະທໍລີ, ທ່ານສາມາດໃຫ້ອັນນີ້ຢ່າງໃດກໍຕາມຫຼາຍຄັ້ງທີ່ເຈົ້າມັກເບິ່ງ
ໄດເລກະທໍລີຈໍານວນຫລາຍ.
"-f" or "--watch-files"
ເບິ່ງໄຟລ໌, ລະບຸເວລາຫຼາຍສໍາລັບຫຼາຍໄຟລ໌. ທ່ານສາມາດເບິ່ງໄຟລ໌ແລະ
ໄດເລກະທໍລີໃນຄໍາສັ່ງດຽວກັນ.
"-r" or "-- ຊໍ້າຄືນ"
ຖ້າເຈົ້າສະໜອງບັນຊີລາຍການໃດນຶ່ງທີ່ເຈົ້າໃຫ້ນັ້ນຈະຖືກເບິ່ງຄືນ. ນີ້ແມ່ນໂດຍ
Default
"-c" or "--on-modify-ຄໍາສັ່ງ"
ຄໍາສັ່ງທີ່ຈະດໍາເນີນການໃນເວລາທີ່ບາງສິ່ງບາງຢ່າງຖືກດັດແກ້.
"-C" or "--on-modify-path-command"
ຄູ່ຄີ-ຄ່າທີ່ກະແຈແມ່ນ regex ທີ່ຈະຖືກຈັບຄູ່ກັບເສັ້ນທາງທີ່ຖືກແກ້ໄຂ, ແລະ
ຄ່າແມ່ນຄໍາສັ່ງທີ່ຈະດໍາເນີນການ. ເບິ່ງ "SYNOPSIS" ເປັນຕົວຢ່າງ.
ເປັນປະໂຫຍດສໍາລັບການ eg restarting webserver ຖ້າຫາກວ່າທ່ານປັບປຸງແກ້ໄຂລະບົບ A ແຕ່ບີບອັດບາງ
ຊັບສິນຄົງທີ່ຖ້າທ່ານດັດແປງໄດເລກະທໍລີ B.
"-t" or "--ເວລາບັກ"
Linux ຈະສົ່ງເຫດການແຈ້ງເຕືອນໃຫ້ທ່ານ ກໍ່ ໄວ, ໄວດັ່ງນັ້ນຖ້າທ່ານແລ່ນບາງສິ່ງບາງຢ່າງເຊັ່ນ:
ແຕະ foo bar
ທ່ານອາດຈະໄດ້ຮັບເຫດການສໍາລັບ ຟູ ໃນຫນຶ່ງ batch, ຕິດຕາມດ້ວຍເຫດການສໍາລັບ ພາທະນາຍຄວາມ ຕໍ່ມາ.
ເພື່ອຈັດການກັບສິ່ງນີ້, ພວກເຮົາເຂົ້າໄປໃນ loop ໃນເວລາທີ່ພວກເຮົາເລີ່ມຕົ້ນໄດ້ຮັບເຫດການແລະນອນສໍາລັບຄ່າເລີ່ມຕົ້ນ
100 microseconds, ຕາບໃດທີ່ພວກເຮົາສືບຕໍ່ໄດ້ຮັບເຫດການທີ່ພວກເຮົາສືບຕໍ່ນອນເປັນເວລາ 100 microseconds,
ແຕ່ທັນທີທີ່ພວກເຮົາຍັງບໍ່ທັນໄດ້ຮັບສິ່ງໃຫມ່, ພວກເຮົາອອກຈາກຜູ້ຈັດການເຫດການຂອງພວກເຮົາ.
"-i" or "--ບໍ່ສົນໃຈ-ເສັ້ນທາງ"
Regexes ສໍາລັບໄຟລ໌ / ໄດເລກະທໍລີທີ່ຈະບໍ່ສົນໃຈເຫດການສໍາລັບ. ໂດຍຄ່າເລີ່ມຕົ້ນນີ້ຖືກຕັ້ງເປັນ regexes ສໍາລັບ
vim ແລະ emacs ໄຟລ໌ຊົ່ວຄາວ, "qr{\..*sw.\z}" ແລະ "qr{\.\#[^/]+\z}" ຕາມລໍາດັບ.
regexes ກົງກັບ "/" ຢູ່ໃນເສັ້ນທາງຫຼືຈຸດເລີ່ມຕົ້ນຂອງສາຍ.
"-d" or "--ດີບັກ"
Spew ອອກບາງຜົນດີບັ໊ກ verbose ໃນຂະນະທີ່ແລ່ນ.
ACKNOWLEDGMENT
ໂມດູນນີ້ໄດ້ຖືກພັດທະນາໃນເບື້ອງຕົ້ນແລະສໍາລັບ Booking.com. ດ້ວຍການອະນຸມັດຈາກ
Booking.com, ໂມດູນນີ້ແມ່ນໂດຍທົ່ວໄປແລະໃສ່ໃນ CPAN, ທີ່ຜູ້ຂຽນຕ້ອງການ
ເພື່ອສະແດງຄວາມຂອບໃຈ.
ໃຊ້ inotify-hookablep ອອນລາຍໂດຍໃຊ້ບໍລິການ onworks.net