国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 操作系統 > 正文

進程在后臺可靠運行的幾種方法

2024-06-28 13:23:16
字體:
來源:轉載
供稿:網友
進程在后臺可靠運行的幾種方法

Cron

a)linux系統下一個自動執行指定任務的程序,包含“時間”、“路徑”、“自動執行腳本”等要素。它有如下特點:

  1. cron程序在安裝系統后一般會自動隨系統啟動,無需每次人手啟動;
  2. cron把命令行保存在/etc/crontab文件;
  3. cron服務器每分鐘讀取一次/etc/crontab的配置;

b)命令解析

  1.Cron啟動、重啟、關閉

    #servicecrondstart/restart/stop

  2.瀏覽已存在的Cron列表

    #crontab-l

  3.編輯當前用戶的crontab,例如:

    1).99***/usr/local/bin/cvsb//表示每天早上9點9分執行目錄/usr/local/bin/中的cvsb文件

    2).33**0/usr/local/bin/qbbak//表示每周日凌晨3時3分執行目錄/usr/local/bin中的qbbak文件

    3).**/6***/usr/local/bin/esbbak //表示每6小時執行一次,執行時間從第一次執行起計算,當然也可以自定義執行時間,比如0*/6***那程序就會在整點執行

    4).20,30***/usr/local/bin/esbak//表示在每小時20分和30分時執行

    5)*23**2-5/usr/local/bin/esbbak//表示在星期二到星期五每天的23點執行

Daemon

a)運行在后臺的一種特殊進程(守護進程),獨立于控制終端并且周期性地執行某種任務或等待處理某些發生的事件。

b)Linux中專門提供了一個函數來完成這個daemon化的過程,這個函數的原型如下:intdaemon(int__nochdir,int__noclose);如果nochdir的值為0,則將切換工作目錄為根目錄;如果noclose為0,則將標準輸入,輸出和標準錯誤都重定向到/dev/null。

c)守護進程一般在系統啟動時開始運行,除非強行終止,否則直到系統關機都保持運行;

d)守護進程經常以超級用戶(root)權限運行,因為它們要使用特殊的端口(1-1024)或訪問某些特殊的資源。

e)守護進程的工作就是打開一個端口,并且監聽(Listen)等待客戶連接。如果客戶端產生一個連接請求,守護進程就創建(Fork)一個子服務器響應這個連接,而主服務器繼續監聽其他的服務請求。

  1. Nohup

a)在要處理的命令前加上nohup即可,標準輸出和標準錯誤缺省會被重定向到nohup.out文件中。

b)在結尾中加上"&"來將命令同時放入后臺運行。例如:nohuppingwww.ibm.com&

  1. Supervisor

a)應用程序需要24小時不間斷運行。這時可使用supervisor監控應用程序的進程。當發生應用程序內部錯誤退出、進程被殺死等情況時,自動重啟應用程序。

b)安裝supervisor

  1. 安裝setuptools$sudoapt-getinstallpython-setuptools
  2. 使用easy_install安裝supervisor:$sudoeasy_installsupervisor安裝完成后出現:/usr/bin/supervisord--supervisor守護進程/usr/bin/supervisorctl--supervisor服務控制程序

c)配置supervison

  1. 將配置文件顯示在控制臺:$echo_supervisord_conf
  2. 生成配置文件:$sudoecho_supervisord_conf>/etc/supervisord.conf
  3. 在當前目錄生成配置文件:$echo_supervisord_conf>supervisord.conf
  4. 配置需要運行的程序,在配置文件中追加:[PRogram:helloworld]command=./helloworld;執行命令process_name=%(program_name)sautostart=true;程序是否隨supervisor啟動而啟動autorestart=true;程序停止時,是否自動重啟startsecs=10

d)啟動

  1. 開啟supervisor$supervisord-csupervisord.conf
  2. 開啟/停止服務#servicesupervisord[start|stop]
  3. 開啟/停止某個程序#supervisorctl[start|stop][program名稱]//在supervisord.conf中定義的
  4. 查看進程狀態$supervisorctlstatus

e)添加supervisord為Linux系統服務,開機自動啟動

  將supervisord.conf拷貝到/etc目錄下

  啟動腳本supervisord.sh

  #!/bin/sh

  #

  #/etc/rc.d/init.d/supervisord

  #

  #Supervisorisaclient/serversystemthat

  #allowsitsuserstomonitorandcontrola

  #numberofprocessesonUNIX-likeOperating

  #systems.

  #

  #chkconfig:-6436

  #description:SupervisorServer

  #processname:supervisord

  #Sourceinitfunctions

  ./etc/rc.d/init.d/functions

  prog="supervisord"

  prog_bin="/usr/local/bin/supervisord"

  PIDFILE="/tmp/supervisord.pid"

  start()

  {

  echo-n$"Starting$prog:"

  #Sourceinitfunctions

  ./etc/rc.d/init.d/functions

  prog="supervisord"

  prog_bin="/usr/local/bin/supervisord"

  PIDFILE="/tmp/supervisord.pid"start()

  {

  echo-n$"Starting$prog:"

  daemon$prog_bin--pidfile$PIDFILE

  [-f$PIDFILE]&&success$"$progstartup"||failure$"$progstartup"

  echo

  }

  stop()

  {

  echo-n$"Shuttingdown$prog:"

  [-f$PIDFILE]&&killproc$prog||success$"$progshutdown"

  echo

  }

  case"$1"in

  start)

  start

  ;;

  stop)

  stop

  ;;

  status)

  status$prog

  ;;

  restart)

  stop

  start

  ;;

  *)

  echo"Usage:$0{start|stop|restart|status}"

  ;;

  esac

添加為系統服務

#mvsupervisord.sh/etc/init.d/supervisord

#chkconfig--addsupervisord

#chkconfig--level345supervisordon

  1. Screen

a)Screen是一個可以在多個進程之間多路復用一個物理終端的窗口管理器。

b)Screen命令

  1. 開啟一個screen:[root@tivf06~]#screen
  2. 命名screen,例如命名一個testscreen:[root@TS-DEV~]#screen-Sscreen
  3. 關閉一個screen:Ctrl-a,d
  4. 查看所有的screen:[root@TS-DEV~]#screen-ls
  5. 重新連接screen:[root@TS-DEV~]#screen-r12865
  6. 清楚deadscreen:[root@TS-DEV~]#screen-wipe


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 聂荣县| 上饶市| 田东县| 永昌县| 民乐县| 长寿区| 漯河市| 陈巴尔虎旗| 仪征市| 广饶县| 廉江市| 莱州市| 临湘市| 信宜市| 金堂县| 毕节市| 巢湖市| 广南县| 鞍山市| 宜章县| 定南县| 万盛区| 特克斯县| 桃源县| 涪陵区| 哈巴河县| 永安市| 双辽市| 东明县| 信丰县| 阜新| 大同市| 隆林| 岑巩县| 黄骅市| 太康县| 黄冈市| 社旗县| 弋阳县| 托里县| 巴青县|