ÉîÈëÆÊÎöLinuxÀú³ÌµÄÆô¶¯ÒªÁì
LinuxÀú³ÌÆô¶¯·½·¨Ïê½â
ÔÚLinux²Ù×÷ϵͳÖУ¬Àú³ÌµÄÆô¶¯¿ÉÒÔͨ¹ý¶àÖÖ·½·¨ÊµÏÖ¡£ÎÞÂÛÊÇÊÖ¶¯Æô¶¯ÕÕ¾Éͨ¹ý¾ç±¾×Ô¶¯Æô¶¯£¬Ïàʶ²î±ðµÄÆô¶¯·½·¨¹ØÓÚϵͳÖÎÀíºÍ¿ª·¢ÊÂÇ鶼ÊǺÜÊÇÖ÷ÒªµÄ¡£±¾ÎĽ«ÏêϸÏÈÈݼ¸ÖÖ³£¼ûµÄLinuxÀú³ÌÆô¶¯·½·¨£¬²¢ÌṩÏêϸµÄ´úÂëʾÀýÀ´×ÊÖú¶ÁÕ߸üºÃµØÃ÷È·¡£
Ò»¡¢ÏÂÁîÐÐÆô¶¯Àú³Ì
ÔÚLinuxϵͳÖУ¬Óû§¿ÉÒÔͨ¹ýÏÂÁîÐÐÖ±½ÓÆô¶¯Ò»¸öÀú³Ì¡£ÕâÊÇ×î¼òÆÓÖ±½ÓµÄÆô¶¯·½·¨£¬ÊÊÓÃÓÚÒ»´ÎÐÔµÄʹÃü»ò²âÊÔ¡£Óû§Ö»ÐèÒªÔÚÖÕ¶ËÊäÈëÏìÓ¦µÄÏÂÁî¼´¿ÉÆô¶¯Àú³Ì¡£
ʾÀý£ºÆô¶¯Ò»¸ö¼òÆÓµÄPython¾ç±¾Àú³Ì
python my_script.py
µÇ¼ºó¸´ÖÆ
¶þ¡¢Ê¹Óúǫ́ÔËÐзûºÅ&Æô¶¯Àú³Ì
ÈôÊÇÓû§Ï£Íû½«Àú³ÌÔÚºǫ́ÔËÐУ¬¿ÉÒÔÔÚÏÂÁîÐÐĩβ¼ÓÉÏ&·ûºÅ¡£ÕâÑù¿ÉÒÔÈÃÀú³ÌÔÚºǫ́ĬĬÔËÐУ¬²»Ó°ÏìÄ¿½ñÖն˵ÄʹÓá£
ʾÀý£ºÊ¹Óúǫ́·ûºÅÆô¶¯Ò»¸ö³¤Ê±¼äÔËÐеÄÀú³Ì
./my_long_running_process &
µÇ¼ºó¸´ÖÆ
Èý¡¢Ê¹ÓÃnohupÏÂÁîÆô¶¯Àú³Ì
nohupÏÂÁîÔÊÐíÓû§ÒÔ²»¹Ò¶ÏµÄ·½·¨ÔËÐÐÏÂÁ×ÝÈ»Óû§Í˳öÄ¿½ñÖնˣ¬Àú³ÌÒ²Äܹ»¼ÌÐøÔËÐС£ÕâÖÖ·½·¨ÊʺÏÐèÒª³¤Ê±¼äÔËÐеÄʹÃü¡£
ʾÀý£ºÊ¹ÓÃnohupÏÂÁîÆô¶¯Ò»¸öÐèÒª³¤Ê±¼äÔËÐеÄÀú³Ì
nohup ./my_long_running_process &
µÇ¼ºó¸´ÖÆ
ËÄ¡¢Ê¹ÓÃsystemdЧÀÍÆô¶¯Àú³Ì
systemdÊÇLinuxϵͳÖг£ÓõÄЧÀÍÖÎÀí¹¤¾ß£¬¿ÉÒÔͨ¹ýsystemdÉèÖÃÎļþÆô¶¯¡¢×èÖ¹ºÍÖÎÀíÀú³Ì¡£Ê¹ÓÃsystemd¿ÉÒÔÔ½·¢ÎÞаµØ¿ØÖÆÀú³Ì£¬²¢ÊµÏÖ×Ô¶¯Æô¶¯µÈ¹¦Ð§¡£
ʾÀý£º±àдһ¸ösystemdЧÀÍÉèÖÃÎļþ
ÔÚ/etc/systemd/systemĿ¼Ï½¨ÉèÒ»¸öÃûΪmy_service.serviceµÄÎļþ£¬²¢Ìí¼ÓÈçÏÂÄÚÈÝ£º
[Unit] Description=My Service After=network.target [Service] ExecStart=/usr/bin/python /path/to/my_script.py Restart=always [Install] WantedBy=multi-user.target
µÇ¼ºó¸´ÖÆ
È»ºóͨ¹ýÒÔÏÂÏÂÁîÆô¶¯¸ÃЧÀÍ£º
systemctl start my_service
µÇ¼ºó¸´ÖÆ
Î塢ʹÓÃcrontab׼ʱʹÃüÆô¶¯Àú³Ì
ͨ¹ýcrontab¿ÉÒÔÉèÖÃ׼ʱʹÃü£¬×¼Ê±Æô¶¯Ö¸¶¨µÄÀú³Ì¡£ÕâÖÖ·½·¨ÊÊÓÃÓÚÐèÒªÖÜÆÚÐÔÖ´ÐеÄʹÃü£¬ºÃ±ÈÈÕÖ¾ÕûÀí¡¢Êý¾Ý±¸·ÝµÈ²Ù×÷¡£
ʾÀý£ºÊ¹ÓÃcrontabÉèÖÃÌìÌìÆÆÏþÖ´Ðо籾
±à¼Óû§µÄcrontabÎļþ£¬Ìí¼ÓÒ»ÐÐÈçÏÂÄÚÈÝ£º
0 0 * * * /path/to/my_script.sh
µÇ¼ºó¸´ÖÆ
ÒÔÉÏÊǼ¸ÖÖ³£¼ûµÄLinuxÀú³ÌÆô¶¯·½·¨¼°Ïà¹Ø´úÂëʾÀý¡£Í¨¹ýÎÞаÔËÓÃÕâЩÆô¶¯·½·¨£¬¿ÉÒÔ¸üºÃµØÖÎÀíºÍ¿ØÖÆϵͳÖеÄÀú³Ì£¬Ìá¸ßÊÂÇéЧÂʺÍϵͳÎȹÌÐÔ¡£Ï£Íû±¾ÎĶԶÁÕßÓÐËù×ÊÖú£¬½Ó´ý¸÷È˶à¶àʵ¼ùºÍ̽Ë÷¡£
ÒÔÉϾÍÊÇÉîÈëÆÊÎöLinuxÀú³ÌµÄÆô¶¯ÒªÁìµÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡