זוהי הפקודה inotify-hookablep שניתן להפעיל בספק האירוח החינמי של OnWorks באמצעות אחת מתחנות העבודה המקוונות המרובות שלנו בחינם כגון Ubuntu Online, Fedora Online, אמולטור המקוון של Windows או אמולטור מקוון של MAC OS
תָכְנִית:
שֵׁם
inotify-hookable - חוסם ממשק שורת הפקודה ל-inotify
תַקצִיר
צפה בספרייה, ספר לנו מתי דברים משתנים בה:
inotify-hookable --watch-directory /tmp/watch-this
צפה בעץ git, כמה הגדרות ומאגר של נכסים סטטיים, הפעל מחדש את שרת האינטרנט
או דחוס את הנכסים האלה אם משהו משתנה:
inotify-hookable \
--watch-directory /etc/uwsgi \
--watch-directory /git_tree/central \
--watch-directory /etc/app-config \
--watch-directory /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"
תיאור
תוכנית שורת פקודה פשוטה זו היא התחליף שלי לפונקציונליות המוצעת על ידי
Filesys::Notify::Simple של Plack. גיליתי שעל עצי git גדולים מאוד Plack היה מוציא א
כמות מופרזת צופה במערכת הקבצים לשינויים.
תוכנית זו משתמשת ב-Linux::Inotify2, כך שהקרנל יודיע לה מייד כשמשהו
שינויים (למעשה זה כל כך מהיר שאנחנו צריכים לעקוף כמה מהר זה שולח לנו אירועים).
התוצאה היא שאתה יכול להריץ את זה למשל בהפעלת מסך ולגרום לזה לצפות שלך
סביבת פיתוח, ושרת האינטרנט שלך יתחיל להפעיל מחדש לפני האצבע שלך
משאיר את להציל לַחְצָן.
כברירת מחדל מתעלמים מקבצים זמניים של vim ו-emacs (ראה "--ignore-paths".) כך שתוכל
ערוך את הקבצים שלך מבלי שהשרת שלך יופעל מחדש שלא לצורך.
כרגע ממשק שורת הפקודה עבור זה הוא היחיד שבאמת הגיוני,
המודול הזה חוסם לחלוטין (למרות שהוא כנראה יכול לפעול בתהליך אחר באמצעות
POE או משהו כזה). תיקונים יתקבלו בברכה.
אפשרויות
שים לב שניתן לשלול אפשרויות בוליאניות עם "--no-OPTION", למשל "--no-r" או
"--no-recursive" כדי לכבות את האפשרות "--recursive" המופעלת כברירת מחדל.
"-וו" or "--צפו במדריכים"
ציין זאת כדי לצפות בספרייה, אתה יכול לתת זאת כמה פעמים שתרצה לצפות
הרבה מדריכים.
"-F" or "--צפה בקבצים"
צפה בקובץ, ציין מספר פעמים עבור מספר קבצים. אתה יכול לצפות בקבצים ו
ספריות באותה פקודה.
"-ר" or "--רקורסיבי"
אם תספק את זה כל ספרייה שתיתן תיצפה רקורסיבית. זה על ידי
ברירת המחדל.
"-ג" or "--ב-שינוי-פקודה"
פקודה שתופעל כאשר משהו ישתנה.
"-C" or "--on-modify-path-command"
זוג מפתח-ערך שבו המפתח הוא ביטוי רגולרי שיותאם לנתיב שונה, ו
הערך הוא פקודה שתופעל. עיין ב"תקציר" לדוגמא.
שימושי למשל להפעלה מחדש של שרת אינטרנט אם אתה משנה ספריה A אבל לדחוס חלק
נכסים סטטיים אם תשנה ספרייה B.
"-t" or "--זמן מאגר"
לינוקס תשלח לך אירועי inotify בֶּאֱמֶת מהר, כל כך מהר שאם אתה רץ משהו כמו:
מגע פו בר
אולי תקבל אירוע בשביל Foo באצווה אחת, ואחריה אירוע עבור בָּר מאוחר יותר.
כדי להתמודד עם זה אנחנו נכנסים ללופ כשאנחנו מתחילים לקבל אירועים וישנים לברירת מחדל של
100 מיקרו-שניות, כל עוד אנחנו ממשיכים לקבל אירועים אנחנו ממשיכים לישון במשך 100 מיקרו-שניות,
אבל ברגע שלא קיבלנו שום דבר חדש אנחנו מפטרים את מטפלי האירועים שלנו.
"-אני" or "--התעלם מנתיבים"
קבצים/ספריות שאפשר להתעלם מהם מאירועים. כברירת מחדל, זה מוגדר ל-Regexes עבור
קבצים זמניים של vim ו-emacs, "qr{\..*sw.\z}" ו-"qr{\.\#[^/]+\z}" בהתאמה.
הקבצים הרגולריים תואמים אחרי כל "/" בנתיב או בתחילת המחרוזת.
"-ד" or "--לנפות"
פלט פלט ניפוי באגים מילולי תוך כדי ריצה.
הכרה
מודול זה פותח במקור באתר ועבור Booking.com. באישור מ
Booking.com, מודול זה הוכלל והוכנס ל-CPAN, שעבורו היו המחברים רוצים
להביע את תודתם.
השתמש ב-inotify-hookablep באינטרנט באמצעות שירותי onworks.net