<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      Fork me on GitHub

      樹莓派:最好的安排

      作者:Vamei 出處:http://www.rzrgm.cn/vamei 嚴禁轉載。

       

      樹莓派是一款低成本的電腦,因此它的一個應用場景就是充當小型的服務器。我平時就會在自己的局域網下接入一個樹莓派,做一些數據備份和上傳的工作。這種時候,我們希望減少對樹莓派的直接操作,就可以采用一些任務規劃的手段,來讓樹莓派自動執行任務。

      shutdown

      reboot

      sleep 10 

       

      用cron規劃任務

      cron是UNIX系統下常用的任務規劃軟件。你可以在cron中要求系統在特定的時間執行特定的任務。cron在系統中有一個運行著的守護進程。當系統時間符合某一條規劃記錄時,守護進程就會啟動相應的任務。在樹莓派應用行中運行下面命令,就可以找到cron的守護進程:

      ps aux | grep cron

       

      結果如下:

      root       424  0.0  0.2   5072  2384 ?        Ss   14:40   0:00 /usr/sbin/cron -f
      pi        6938  0.0  0.2   4280  2008 pts/1    S+   17:42   0:00 grep --color=auto cron

      記錄中的第一條,就是cron的進程。

       

      如果想要規劃任務,那么可以用下面的命令來編輯規劃記錄:

      crontab -e

      在規劃記錄中,每一行為一條記錄,#開始的是注釋。每一行記錄又分為6列,用空格分隔,分別表示分鐘(m,0-59)、小時(h,0-23)、一個月中的哪一天(dom,1-31)、月(mon,1-12)、一個星期中的哪一天(dow,0-6)、以及要執行的命令。在填寫規劃時間的時候,除了用數字,還可以用*,用來表示所有:

       

      # m h  dom mon dow   command
       30 5   10   3   *   touch /tmp/test.log

      上面表示每年3月10號5點30分,執行touch /tmp/test.log。

       

      # m h  dom mon dow   command
       10 18   *   *   *   echo "Hello World" > /home/pi/log

      每天的18點10分執行echo "Hello World" > /home/pi/log。

       

      一列中,還可以規劃多個時間點,例如:

      # m h  dom mon dow   command
       10 2-4  *   *   *   echo "Hello World" > /home/pi/log

      每天2:10、3:10和4:10執行。也就是說,“N-M”表示了從N到M的范圍。

       

      # m h  dom mon dow   command
       30 1,5  *   *   *   echo "Hello World" > /home/pi/log

      每天1:30和5:30執行。也就是說,“N,M”表示了N和M兩個時間點。

       

      規劃記錄crontab保存后,cron就將按照規劃,在對應的時間執行對應的命令。每個用戶有一個自己的crontab,當cron要執行規劃時,也會以相應的用戶身份來執行。我是以pi用戶修改保存的crontab,cron就會以pi的身份來運行各個命令。如果想修改其他用戶的crontab,那么可以用-u關鍵字:

      sudo crontab -e -u root

       

      用cron來開機啟動 

      cron除了做時間規劃,還可以用于開機啟動。在crontab中添加下面一行記錄,就可以方便的實現:

      @reboot touch /home/pi/reboot.log

       

      用/etc/init.d實現開機啟動

      在樹莓派下的/etc/init.d文件夾下有很多腳本,比如我們已經了解了的cron。這個cron腳本把cron這個守護進程包裝成了一個服務,定義了它在啟動、重啟和終止時的具體行為。這樣,用戶在啟用相應的服務時,就不需要進行太復雜的設置。當服務終止時,操作系統也能根據腳本的定義,自動地回收相關資源。用戶還能把重要的服務設置成開機啟動,省了手動開啟的麻煩。因此,我們在/etc/init.d中內看到很多默默工作的服務,如ssh、bluetooth、rsync等。

       

      服務腳本遵循特定的格式。如下面的/etc/init.d/test腳本:

      #!/bin/sh
      # Start/stop the test daemon.
      #
      ### BEGIN INIT INFO
      # Provides:          test
      # Required-Start:    $remote_fs $syslog $time
      # Required-Stop:     $remote_fs $syslog $time
      # Default-Start:     2 3 4 5
      # Default-Stop:      0 1 6
      # Short-Description: test
      # Description:       test
      ### END INIT INFO
      
      do_start() {
          echo "start"
      }
      
      do_stop() {
          echo "stop"
      }
      
      do_restart() {
          echo "restart"
      }
      
      do_status() {
          echo "status"
      }
      
      do_fallback() {
          echo "fallback"
      }
      
      case "$1" in
      start)  do_start
              ;;
      stop)   do_stop
              ;;
      restart) do_restart
              ;;
      status) do_status
              ;;
      *)      do_fallback
              ;;
      esac
      exit 0

       

      腳本的一開始有頭部信息。頭部信息中除了基本的介紹,還有其他信息。Required-Start說明了該test應用啟動前,系統必須啟動的其他應用。Required-Stop列出的應用必須在test應用結束后結束。Default-Start和Default-Stop中說明的默認運行級別。Unix系統可以在不同運行模式下工作,如單用戶模式、多用戶模式,每種模式就稱為一個運行級別。大多數UNIX系統遵照: 

      運行級別:
      0 停機,關機
      1 單用戶,無網絡連接,不運行守護進程,不允許非超級用戶登錄
      2 多用戶,無網絡連接,不運行守護進程
      3 多用戶,正常啟動系統
      4 用戶自定義
      5 多用戶,帶圖形界面
      6 重啟

      test腳本中,默認支持的運行級別是2、3、4、5。

       

      在腳本的主體程序中包含了一個case分支結構,說明了應用在進入啟動(start)、停止(stop)、重啟(restart)、狀態查詢(status)狀態時應該采用的動作。我們可以用service命令來手動讓腳本切換狀態:

      sudo service test start

      腳本中相應的動作會被調用。

       

      /etc/init.d/myscript還不能隨機啟動。Linux在開機啟動時,真正檢查的是/etc/rcN.d文件夾,執行其中的腳本。這里的N代表了運行級別。比如說在運行級別2時,Linux會檢查/etc/rc2.d文件夾,執行其中的腳本。我們需要把/etc/init.d中的服務復制到或者建立軟連接到/etc/rcN.d,才能服務在該運行級別的開機啟動。不過,我們可以利用update-rc.d命令更便利地進行:

      sudo update-rc.d cron defaults # 按照默認支持的運行級別建立軟鏈接
      sudo update-rc.d cron remove   # 刪除軟鏈接

       

      避免使用/etc/rc.local

      樹莓派官網上給出了修改/etc/rc.local的方法,來在樹莓派開機時執行用戶自定義的任務。比如在該文件中執行date命令:

      #!/bin/sh -e
      #
      # rc.local
      #
      # This script is executed at the end of each multiuser runlevel.
      # Make sure that the script will "exit 0" on success or any other
      # value on error.
      #
      # In order to enable or disable this script just change the execution
      # bits.
      #
      # By default this script does nothing.
      
      # time
      date > /tmp/rc.local.log
      
      exit 0

      但這種啟動方式不推薦。/etc/rc.local是在系統初始化的末尾執行的一個腳本。如果把太多的任務加入到這個腳本中,不但會拖慢開機的速度,還會造成管理上的混亂。因此,/etc/rc.local往往只用于修改一些在啟動過程需要設定的參數,而不涉及具體的任務啟動。如果想隨開機啟動某些服務,應該避免使用/etc/rc.local。

       

      總結

      本章主要介紹了用cron實現樹莓派上的任務規劃,以及用多種方式來實現開機啟動程序。

       

      歡迎閱讀“騎著企鵝采樹莓”系列文章 

      posted @ 2017-01-12 20:52  Vamei  閱讀(7987)  評論(1)    收藏  舉報
      主站蜘蛛池模板: 国产国拍亚洲精品永久软件| 亚洲国产高清av网站| 我国产码在线观看av哈哈哈网站| 亚洲熟伦熟女新五十熟妇| 国产亚洲精品久久久久久大师| 中文字幕人妻精品在线| 日本阿v片在线播放免费| 国产精品亚洲а∨天堂2021| 亚洲中文久久久精品无码| 亚洲综合一区二区三区不卡| 一区二区三区精品偷拍| 一级女性全黄久久片免费| 国产一区二区三区四区五区加勒比 | 国产精品推荐手机在线| 年辖:市辖区| 日本不卡一区二区三区在线| 九九热在线视频观看最新| 中文字幕一区二区三区久久蜜桃| 国产真人性做爰久久网站| 色综合欧美亚洲国产| 日韩中文字幕在线不卡一区| 一本色道久久东京热| 国产日韩av免费无码一区二区三区| 日夜啪啪一区二区三区| 国产一区二区日韩在线| 成人午夜大片免费看爽爽爽| 国产精品1区2区3区在线观看| 亚洲av中文一区二区| 亚洲精品第一区二区在线| 少妇人妻偷人精品系列| 亚洲午夜福利网在线观看 | 2019亚洲午夜无码天堂| 国产成人精品三上悠亚久久| 久久精品不卡一区二区| 天堂中文在线资源| 亚洲人成网站在线在线观看| 乱60一70归性欧老妇| 少妇和邻居做不戴套视频| 亚洲 自拍 另类小说综合图区| 国产免费午夜福利在线观看| 亚洲综合精品第一页|