Next: , Previous: Synchronous Processes, Up: Processes   [Contents][Index]


36.4 È󯱴ü¥×¥í¥»¥¹¤ÎºîÀ®

È󯱴ü¥×¥í¥»¥¹¤òºîÀ®¤¹¤ë¤È¡¢Emacs¤È¥µ¥Ö¥×¥í¥»¥¹¤Îξ¼Ô¤Ï ¤¿¤À¤Á¤Ëưºî¤ò·Ñ³¤·¤Þ¤¹¡£ ¤½¤·¤Æ¥×¥í¥»¥¹¤ÏEmacs¤ÈÊÂ¹Ô¤ËÆ°ºî¤·¡¢ ξ¼Ô¤Ï°Ê²¼¤ÎÀá¤Ë½Ò¤Ù¤ë´Ø¿ô¤òÍѤ¤¤Æ¸ß¤¤¤ËÄÌ¿®¤Ç¤­¤Þ¤¹¡£ ¤·¤«¤·¡¢ÄÌ¿®¤ÏÉôʬŪ¤ËÈ󯱴ü¤Ç¤¹¡£ ÆÃÄê¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤¿¤È¤­¤Ë¤À¤±Emacs¤Ï¥×¥í¥»¥¹¤Ø¥Ç¡¼¥¿¤òÁ÷¤ê¡¢ Emacs¤¬ÆþÎÏÂÔ¤Á¤«»þ´ÖÂÔ¤Á¤ò¤·¤Æ¤¤¤ë¤È¤­¤Ë¤À¤± ¥×¥í¥»¥¹¤«¤é¤Î½ÐÎϤò¼õ¤±¼è¤ì¤Þ¤¹¡£

¤³¤³¤Ç¤Ï¡¢È󯱴ü¥×¥í¥»¥¹¤ÎºîÀ®ÊýË¡¤Ë¤Ä¤¤¤Æ½Ò¤Ù¤Þ¤¹¡£

Function: start-process name buffer-or-name program &rest args

¤³¤Î´Ø¿ô¤Ï¡¢¿·¤¿¤ÊÈ󯱴ü¥µ¥Ö¥×¥í¥»¥¹¤òºîÀ®¤·¡¢ ¤½¤Î¥×¥í¥»¥¹¤Ç¥×¥í¥°¥é¥àprogram¤òÁö¤é¤»¤ë¡£ Lisp¤Ë¤ª¤¤¤Æ¿·¤¿¤Ê¥µ¥Ö¥×¥í¥»¥¹¤òɽ¤¹¥×¥í¥»¥¹¥ª¥Ö¥¸¥§¥¯¥È¤òÊÖ¤¹¡£ °ú¿ôname¤Ï¥×¥í¥»¥¹¥ª¥Ö¥¸¥§¥¯¥È¤Î̾Á°¤ò»ØÄꤹ¤ë¡£ ¤½¤Î̾Á°¤Î¥×¥í¥»¥¹¤¬¤¹¤Ç¤Ë¸ºß¤¹¤ë¤È¡¢ ̾Á°¤ò°ì°Õ¤Ë¤¹¤ë¤¿¤á¤Ë¡Ê‘<1>’¤Ê¤É¤òÉղ䷤ơËname¤ò½¤Àµ¤¹¤ë¡£ ¥Ð¥Ã¥Õ¥¡buffer-or-name¤Ï¡¢¤½¤Î¥×¥í¥»¥¹¤ËÂбþÉÕ¤±¤ë¥Ð¥Ã¥Õ¥¡¤Ç¤¢¤ë¡£

»Ä¤ê¤Î°ú¿ôargs¤Ï¡¢¥×¥í¥°¥é¥à¤ËÂФ¹¤ë ¥³¥Þ¥ó¥É¹Ô°ú¿ô¤ò»ØÄꤹ¤ëʸ»úÎó¤Ç¤¢¤ë¡£

¤Ä¤®¤ÎÎã¤Ç¤Ï¡¢ºÇ½é¤Î¥×¥í¥»¥¹¤Ïư¤­»Ï¤á¤ë¤È 100Éô֡ʵٻߤǤϤʤ¯¡Ëưºî¤¹¤ë¡£ ¤½¤Î¤¢¤¤¤À¤Ë2ÈÖÌÜ¤Î¥×¥í¥»¥¹¤òư¤«¤·»Ï¤á¤ë¤È¡¢ °ì°Õ¤Ç¤¢¤ë¤¿¤á¤Ë¤½¤ì¤Ë¤Ï̾Á°‘my-process<1>’¤¬Í¿¤¨¤é¤ì¤ë¡£ 2ÈÖÌÜ¤Î¥×¥í¥»¥¹¤Ï¡¢ºÇ½é¤Î¥×¥í¥»¥¹¤¬½ªÎ»¤¹¤ë¤Þ¤¨¤Ë ¥Ð¥Ã¥Õ¥¡‘foo’¤Ë¥Ç¥£¥ì¥¯¥È¥ê°ìÍ÷¤òÁÞÆþ¤¹¤ë¡£ 2ÈÖÌÜ¤Î¥×¥í¥»¥¹¤¬½ªÎ»¤¹¤ë¤È¤½¤ì¤òɽ¤¹¥á¥Ã¥»¡¼¥¸¤¬¥Ð¥Ã¥Õ¥¡¤ËÁÞÆþ¤µ¤ì¤ë¡£ ¤·¤Ð¤é¤¯¤·¤ÆºÇ½é¤Î¥×¥í¥»¥¹¤¬½ªÎ»¤¹¤ë¤È¡¢ Ê̤Υá¥Ã¥»¡¼¥¸¤¬¥Ð¥Ã¥Õ¥¡¤ËÁÞÆþ¤µ¤ì¤ë¡£

(start-process "my-process" "foo" "sleep" "100")
     ⇒ #<process my-process>
(start-process "my-process" "foo" "ls" "-l" "/user/lewis/bin")
     ⇒ #<process my-process<1>>

---------- Buffer: foo ----------
total 2
lrwxrwxrwx  1 lewis     14 Jul 22 10:12 gnuemacs --> /emacs
-rwxrwxrwx  1 lewis     19 Jul 30 21:02 lemon

Process my-process<1> finished

Process my-process finished
---------- Buffer: foo ----------
Function: start-process-shell-command name buffer-or-name command &rest command-args

¤³¤Î´Ø¿ô¤Ïstart-process¤ÈƱÍͤǤ¢¤ë¤¬¡¢ »ØÄꤷ¤¿¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¤¿¤á¤Ë¥·¥§¥ë¤òÍѤ¤¤ëÅÀ¤¬°Û¤Ê¤ë¡£ °ú¿ôcommand¤Ï¥·¥§¥ë¥³¥Þ¥ó¥É¤Î̾Á°¤Ç¤¢¤ê¡¢ command-args¤Ï¤½¤Î¥·¥§¥ë¥³¥Þ¥ó¥É¤ËÂФ¹¤ë°ú¿ô¤Ç¤¢¤ë¡£ ÊÑ¿ôshell-file-name¤Ï¡¢»ÈÍѤ¹¤ë¥·¥§¥ë¤ò»ØÄꤹ¤ë¡£

start-process¤ÇľÀܤˤǤϤʤ¯ ¥·¥§¥ë¤ò²ð¤·¤Æ¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ë¤È¡¢ °ú¿ô¤Î¥ï¥¤¥ë¥É¥«¡¼¥É¤Ê¤É¤Î¥·¥§¥ë¤Îµ¡Ç½¤òÍøÍѤǤ­¤ë¡£ ¤Ä¤Þ¤ê¡¢¥æ¡¼¥¶¡¼»ØÄê¤ÎǤ°Õ¤Î¥Õ¥¡¥¤¥ë̾¤ò¥³¥Þ¥ó¥É¤ËÆþ¤ì¤ë¾ì¹ç¤Ë¤Ï¡¢ ¤Þ¤¨¤â¤Ã¤Æshell-quote-argument¤Ç¥¯¥©¡¼¥È¤·¡¢ ¥Õ¥¡¥¤¥ë̾Æâ¤Î¥·¥§¥ë¤ÎÆÃÊ̤Êʸ»ú¤¬ ¤½¤Î¤è¤¦¤ÊÆÃÊ̤ʰÕÌ£¤ò»ý¤¿¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¡£ see Shell Arguments¡£

Variable: process-connection-type

¤³¤ÎÊÑ¿ô¤Ï¡¢È󯱴ü¥µ¥Ö¥×¥í¥»¥¹¤È¤ÎÄÌ¿®¤ËÍѤ¤¤ëÁõÃ֤η¿¤òÀ©¸æ¤¹¤ë¡£ ¤³¤ì¤¬nil°Ê³°¤Ç¤¢¤ë¤Èµ¿»÷üËöPTY¤òÍøÍѤǤ­¤ë¾ì¹ç¤Ë¤Ï¤½¤ì¤òÍѤ롣 ¤µ¤â¤Ê¤±¤ì¤Ð¥Ñ¥¤¥×¤òÍѤ¤¤ë¡£

¥·¥§¥ë¡Êshell¡Ë¥â¡¼¥É¤Ê¤É¤Î¥æ¡¼¥¶¡¼¤Ë¸«¤¨¤ë¥×¥í¥»¥¹¸þ¤±¤Ë¤Ï¡¢ ¥Ñ¥¤¥×¤Ç¤ÏÉÔ²Äǽ¤Ê¥×¥í¥»¥¹¤È¤½¤Î»Ò¥×¥í¥»¥¹¤È¤Î¤¢¤¤¤À¤Ç ¥¸¥ç¥ÖÀ©¸æ¡ÊC-c¡¢C-z¤Ê¤É¡Ë¤òµö¤¹¤Î¤Ç µ¿»÷üËöPTY¤¬Ë¾¤Þ¤·¤¤¡£ ¥×¥í¥°¥é¥à¤ÎÆâÉôÌÜŪ¸þ¤±¤Ë»È¤ï¤ì¤ë¥µ¥Ö¥×¥í¥»¥¹¤Ç¤Ï¡¢ ¸úΨŪ¤Ê¥Ñ¥¤¥×¤òÍѤ¤¤ë¤Û¤¦¤¬¤è¤¤¡£ ¤Þ¤¿¡¢Â¿¤¯¤Î¥·¥¹¥Æ¥à¤Ç¤Ïµ¿»÷üËöPTY¤ÎÁí¿ô¤Ë¤ÏÀ©Ì󤬤¢¤ê¡¢ ¤½¤ì¤é¤òϲÈñ¤·¤Ê¤¤¤Û¤¦¤¬¤è¤¤¡£

process-connection-type¤ÎÃÍ¤Ï start-process¤ò¸Æ¤Ó½Ð¤·¤¿¤È¤­¤Ë»È¤ï¤ì¤ë¡£ ¤·¤¿¤¬¤Ã¤Æ¡¢start-process¤Î¸Æ¤Ó½Ð¤·¤Î¼þ¤ê¤Ç¤³¤ÎÊÑ¿ô¤ò«Çû¤¹¤ë¤³¤È¤Ç¡¢ 1¤Ä¤Î¥µ¥Ö¥×¥í¥»¥¹¤ËÂФ¹¤ëÄÌ¿®ÊýË¡¤ò»ØÄê¤Ç¤­¤ë¡£

(let ((process-connection-type nil))  ; ¥Ñ¥¤¥×¤ò»È¤¦
  (start-process …))

¥µ¥Ö¥×¥í¥»¥¹¤¬¼ÂºÝ¤Ë¤Ï¥Ñ¥¤¥×¤«µ¿»÷üËöPTY¤Î¤É¤Á¤é¤ò »È¤Ã¤Æ¤¤¤ë¤«¤òÄ´¤Ù¤ë¤Ë¤Ï¡¢´Ø¿ôprocess-tty-name¤ò»È¤¦ ¡Êsee Process Information¡Ë¡£