Next: Transaction Queues, Previous: Output from Processes, Up: Processes [Contents][Index]
¥×¥í¥»¥¹¤ÎÈÖʼ¡Êprocess sentinel¡Ë¤Ï¡¢ ¥×¥í¥»¥¹¤ò½ªÎ»¡¿°ì»þÄä»ß¡¿·Ñ³¤µ¤»¤ë ¡ÊEmacs¤¬Á÷¤Ã¤¿¤«¥×¥í¥»¥¹¼«¿È¤Îưºî¤Ë¤è¤Ã¤ÆÀ¸µ¯¤·¤¿¡Ë¥·¥°¥Ê¥ë¤ò´Þ¤á¤Æ ÂбþÉÕ¤±¤é¤ì¤¿¥×¥í¥»¥¹¤Î¾õÂÖ¤¬Ç¤°Õ¤ÎÍýͳ¤ÇÊѲ½¤·¤¿¤È¤¤Ë ¸Æ¤Ó½Ð¤µ¤ì¤ë´Ø¿ô¤Ç¤¹¡£ ¥×¥í¥»¥¹¤ÎÈÖʼ¤Ï¡¢¥×¥í¥»¥¹¤¬½ªÎ»¤·¤Æ¤â¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¡£ ÈÖʼ¤Ï2¤Ä¤Î°ú¿ô¡¢»ö¾Ý¤¬È¯À¸¤·¤¿¥×¥í¥»¥¹¤È »ö¾Ý¤Î¼ïÎà¤òµ½Ò¤¹¤ëʸ»úÎó¤ò¼õ¤±¼è¤ê¤Þ¤¹¡£
»ö¾Ý¤òµ½Ò¤¹¤ëʸ»úÎó¤Ï¤Ä¤®¤Î¤È¤ª¤ê¤Ç¤¹¡£
"finished\n"
.
"exited abnormally with code exitcode\n"
.
"name-of-signal\n"
.
"name-of-signal (core dumped)\n"
.
ÈÖʼ¤ÏEmacs¤¬¡Ê¤¿¤È¤¨¤Ð¡¢Ã¼ËöÆþÎϤä»þ´Ö·Ð²á¡¢¥×¥í¥»¥¹¤Î½ÐÎϤò¡Ë
ÂԤäƤ¤¤ë¤È¤¤Ë¤Î¤ß¼Â¹Ô¤µ¤ì¤Þ¤¹¡£
¾¤ÎLisp¥×¥í¥°¥é¥à¤Î¼Â¹ÔÅÓÃæ¤Ç̵Ãá½ø¤ËÈÖʼ¤ò¼Â¹Ô¤·¤¿¾ì¹ç¤Ëµ¯¤³¤ë
¥¿¥¤¥ß¥ó¥°¥¨¥é¡¼¤ò²óÈò¤¹¤ë¤¿¤á¤Ç¤¹¡£
sit-for
¤äsleep-for
¡Êsee Waiting¡Ë¡¢¤¢¤ë¤¤¤Ï¡¢
accept-process-output
¡Êsee Accepting Output¡Ë¤ò
¸Æ¤Ó½Ð¤¹¤È¥×¥í¥°¥é¥à¤ÏÂÔ¤Á¤ËÆþ¤ê¡¢ÈÖʼ¤¬Æ°¤±¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£
Emacs¤Ï¡¢¥³¥Þ¥ó¥É¥ë¡¼¥×¤ÇÆþÎϤòÆÉ¤à¤È¤¤Ë¤âÈÖʼ¤Î¼Â¹Ô¤òµö¤·¤Þ¤¹¡£
ÈÖʼ¤ÎÆâ¦¤Ç¤ÏÃæÃǤÏÉáÄ̤϶ػߤµ¤ì¤Æ¤¤¤Þ¤¹¡£
¤µ¤â¤Ê¤¤¤È¡¢¥³¥Þ¥ó¥É¥ì¥Ù¥ë¤ÇÂǤä¿C-g¤Î¸ú²Ì¤ä¡¢
¥æ¡¼¥¶¡¼¥³¥Þ¥ó¥É¤òÃæÃǤ¹¤ë¤¿¤á¤ËÂǤä¿C-g¤Î¸ú²Ì¤Ïͽ¬¤Ç¤¤Þ¤»¤ó¡£
ÈÖʼ¤ÎÆâ¦¤ÇÃæÃǤò¹Ô¤¤¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢
inhibit-quit
¤Ënil
¤ò«Çû¤·¤Þ¤¹¡£
See Quitting¡£
¥×¥í¥»¥¹¤Î¥Ð¥Ã¥Õ¥¡¤Ë½ÐÎϤò½ñ¤¹þ¤àÈÖʼ¤Ï¡¢
¤½¤Î¥Ð¥Ã¥Õ¥¡¤¬Í¸ú¤Ç¤¢¤ë¤«¤É¤¦¤«¤ò¸¡ºº¤¹¤ë¤Ù¤¤Ç¤¹¡£
̵¸ú¤Ê¥Ð¥Ã¥Õ¥¡¤ËÁÞÆþ¤·¤è¤¦¤È¤¹¤ë¤È¥¨¥é¡¼¤Ë¤Ê¤ê¤Þ¤¹¡£
¥Ð¥Ã¥Õ¥¡¤¬Ìµ¸ú¤Ç¤¢¤ì¤Ð¡¢
¼°(buffer-name (process-buffer process))
¤ò¼Â¹Ô¤¹¤ë¤Ènil
¤òÊÖ¤·¤Þ¤¹¡£
ÈÖʼ¤Î¼Â¹ÔÃæ¤Ë¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¤È¤½¤Î¥¨¥é¡¼¤Ï¼«Æ°Åª¤ËÊ᪤µ¤ì¡¢
ÈÖʼ¤ò»Ïư¤·¤¿¤È¤¤Ëư¤¤¤Æ¤¤¤¿
¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤òÄä»ß¤·¤Ê¤¤¤è¤¦¤Ë¤·¤Þ¤¹¡£
¤·¤«¤·¡¢debug-on-error
¤¬nil
°Ê³°¤Ç¤¢¤ë¤È¡¢
¥¨¥é¡¼¤òÊ᪤·¤Þ¤»¤ó¡£
¤³¤ì¤Ë¤è¤ê¡¢Lisp¥Ç¥Ð¥Ã¥¬¤ÇÈÖʼ¤ò¥Ç¥Ð¥Ã¥°¤Ç¤¤Þ¤¹¡£
See Debugger¡£
Emacs¤Î½é´ü¤ÎÈǤǤϡ¢Àµµ¬É½¸½¤òõº÷¤·¤¿¤ê°ìÃ×½èÍý¤¹¤ëÈÖʼ¤Ç¤Ï¡¢ ¥Þ¥Ã¥Á¥Ç¡¼¥¿¤òÌÀ¼¨Åª¤ËÊݸ¡¿Éü¸µ¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤·¤¿¡£ º£¤ÎEmacs¤Ï¡¢ÈÖʼ¤ËÂФ·¤Æ¤Ï¤³¤ì¤ò¼«Æ°Åª¤Ë¹Ô¤¤¤Þ¤¹¤«¤é¡¢ ÈÖʼ¤ÇÌÀ¼¨Åª¤Ë¹Ô¤¦É¬ÍפϤ¢¤ê¤Þ¤»¤ó¡£ See Match Data¡£
¤³¤Î´Ø¿ô¤Ï¡¢¥×¥í¥»¥¹process¤ËÈÖʼsentinel¤òÂбþÉÕ¤±¤ë¡£
sentinel¤¬nil
¤Ç¤¢¤ë¤È¡¢¥×¥í¥»¥¹¤ËÈÖʼ¤Ï¤Ê¤¤¡£
ÈÖʼ¤¬¤Ê¤¤¾ì¹ç¤Î¥Ç¥Õ¥©¥ë¥È¤Î¤Õ¤ë¤Þ¤¤¤Ï¡¢
¥×¥í¥»¥¹¾õÂÖ¤¬ÊѲ½¤¹¤ë¤È¥×¥í¥»¥¹¤Î¥Ð¥Ã¥Õ¥¡¤Ë¥á¥Ã¥»¡¼¥¸¤òÁÞÆþ¤¹¤ë¡£
(defun msg-me (process event) (princ (format "Process: %s had the event `%s'" process event))) (set-process-sentinel (get-process "shell") 'msg-me) ⇒ msg-me
(kill-process (get-process "shell")) -| Process: #<process shell> had the event `killed' ⇒ #<process shell>
¤³¤Î´Ø¿ô¤Ï¡¢¥×¥í¥»¥¹process¤ÎÈÖʼ¤òÊÖ¤¹¤«¡¢
ÈÖʼ¤¬¤Ê¤±¤ì¤Ðnil
¤òÊÖ¤¹¡£
ÈÖʼ¤ä¥Õ¥£¥ë¥¿´Ø¿ô¤¬Æ°ºîÃæ¤Ë¤³¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹¤È¡¢
ÈÖʼ¤ä¥Õ¥£¥ë¥¿´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿¤È¤¤ËEmacs¤¬¥æ¡¼¥¶¡¼¤«¤é¤Î
¥¡¼¥Ü¡¼¥ÉÆþÎϤòÂԤäƤë¤Ènil
°Ê³°¤òÊÖ¤·¡¢
¤½¤ì°Ê³°¤Ç¤Ïnil
¤òÊÖ¤¹¡£