นี่คือคำสั่ง inotify-hookablep ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้หนึ่งในเวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
inotify-hookable - บล็อกอินเตอร์เฟสบรรทัดคำสั่งเพื่อ inotify
เรื่องย่อ
ดูไดเร็กทอรี บอกเราเมื่อสิ่งต่างๆ เปลี่ยนแปลงในไดเร็กทอรี:
inotify-hookable --watch-directories /tmp/watch-this.dll
ดู git tree, configs บางส่วน และ repository of static asset รีสตาร์ท webserver
หรือบีบอัดเนื้อหาเหล่านั้นหากมีการเปลี่ยนแปลง:
inotify-hookable \
--watch-ไดเรกทอรี /etc/uwsgi \
--watch-ไดเรกทอรี /git_tree/central \
--watch-ไดเรกทอรี /etc/app-config \
--watch-ไดเรกทอรี /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 รีสตาร์ท"
DESCRIPTION
โปรแกรมบรรทัดคำสั่งง่าย ๆ นี้ใช้แทนฟังก์ชันการทำงานที่
Filesys::Notify::Simple ของ Plack ฉันพบว่าบนต้นไม้คอมไพล์ขนาดใหญ่มาก Plack จะใช้เวลา
จำนวนที่มากเกินไปดูระบบไฟล์สำหรับการเปลี่ยนแปลง
โปรแกรมนี้ใช้ Linux::Inotify2 ดังนั้นเคอร์เนลจะแจ้งเตือนให้ ทันที เมื่อบางสิ่งบางอย่าง
การเปลี่ยนแปลง (อันที่จริงมันเร็วมากจนเราต้องแก้ไขว่ามันจะส่งกิจกรรมถึงเราเร็วแค่ไหน)
ผลที่ได้คือคุณสามารถเรียกใช้สิ่งนี้ได้เช่นในเซสชั่นหน้าจอและให้นาฬิกาของคุณดู
สภาพแวดล้อมการพัฒนาและเว็บเซิร์ฟเวอร์ของคุณจะเริ่มเริ่มต้นใหม่ก่อนนิ้วของคุณ
ออกจาก ประหยัด ปุ่ม
ไฟล์ชั่วคราว vim และ emacs จะถูกละเว้นโดยค่าเริ่มต้น (ดู "--ignore-paths") เพื่อให้คุณสามารถ
แก้ไขไฟล์ของคุณโดยที่เซิร์ฟเวอร์ไม่รีสตาร์ทโดยไม่จำเป็น
ขณะนี้อินเทอร์เฟซบรรทัดคำสั่งสำหรับสิ่งนี้เป็นเพียงส่วนเดียวที่เหมาะสมจริงๆ
โมดูลนี้ถูกบล็อกทั้งหมด (แม้ว่ามันอาจจะทำงานในกระบวนการอื่นผ่านทาง
ป.ป.ช.หรือป่าว) แพทช์ยินดีต้อนรับ
OPTIONS
โปรดทราบว่าตัวเลือกบูลีนสามารถลบล้างด้วย "--no-OPTION" เช่น "--no-r" หรือ
"--no-recursive" เพื่อปิดตัวเลือก "--recursive" ซึ่งเปิดอยู่โดยค่าเริ่มต้น
"-w" or "--watch-ไดเรกทอรี"
ระบุสิ่งนี้เพื่อดูไดเรกทอรี คุณสามารถให้สิ่งนี้กี่ครั้งก็ได้
ไดเรกทอรีจำนวนมาก
"-NS" or "--ดู-ไฟล์"
ดูไฟล์ ระบุหลาย ๆ ครั้งสำหรับหลายไฟล์ คุณสามารถดูไฟล์และ
ไดเร็กทอรีในคำสั่งเดียวกัน
"-NS" or "--เรียกซ้ำ"
หากคุณระบุไดเร็กทอรีที่คุณให้นี้จะถูกดูซ้ำ นี่คือโดย
ค่าเริ่มต้น.
"-ค" or "--on-modify-คำสั่ง"
คำสั่งที่จะรันเมื่อมีการแก้ไขบางอย่าง
"-ค" or "--on-modify-path-command"
คู่คีย์-ค่าโดยที่คีย์คือ regex ที่จะจับคู่กับเส้นทางที่แก้ไข และ
ค่าเป็นคำสั่งที่จะถูกเรียกใช้ ดูตัวอย่าง "เรื่องย่อ"
มีประโยชน์เช่นการรีสตาร์ทเว็บเซิร์ฟเวอร์หากคุณแก้ไขไดเร็กทอรี A แต่บีบอัดบางอย่าง
ทรัพย์สินคงที่หากคุณแก้ไขไดเรกทอรี B.
"-NS" or "--บัฟเฟอร์-เวลา"
Linux จะส่ง inotify กิจกรรมให้คุณ จริงๆ เร็ว เร็วจนถ้าคุณรันบางอย่างเช่น:
ทัชฟูบาร์
คุณอาจได้รับงานสำหรับ foo ในหนึ่งชุด ตามด้วยเหตุการณ์สำหรับ บาร์ หลังจากนั้น.
เพื่อจัดการกับสิ่งนี้ เราเข้าสู่ลูปเมื่อเราเริ่มรับเหตุการณ์และเข้าสู่โหมดสลีปเป็นค่าเริ่มต้น
100 ไมโครวินาที ตราบใดที่เราได้รับเหตุการณ์ เราก็ยังคงหลับไป 100 ไมโครวินาที
แต่ทันทีที่เรายังไม่ได้รับสิ่งใหม่ เราจะปิดตัวจัดการเหตุการณ์ของเรา
"-ผม" or "--ละเว้น-เส้นทาง"
Regexes สำหรับไฟล์/ไดเร็กทอรีที่จะละเว้นเหตุการณ์สำหรับ โดยค่าเริ่มต้นสิ่งนี้ถูกตั้งค่าเป็น regexes สำหรับ
vim และ emacs ไฟล์ชั่วคราว "qr{\..*sw.\z}" และ "qr{\.\#[^/]+\z}" ตามลำดับ
regexes ตรงกันหลัง "/" ใดๆ ในเส้นทางหรือจุดเริ่มต้นของสตริง
"-NS" or "--ดีบัก"
คายเอาท์พุตการดีบัก verbose ออกมาในขณะที่ทำงาน
การรับทราบ
โมดูลนี้เดิมพัฒนาขึ้นที่และสำหรับ Booking.com โดยได้รับอนุมัติจาก
Booking.com โมดูลนี้ถูกทำให้เป็นแบบทั่วไปและวางบน CPAN ซึ่งผู้เขียนต้องการ
เพื่อแสดงความขอบคุณ
ใช้ inotify-hookablep ออนไลน์โดยใช้บริการ onworks.net