無線&移動互聯網技術研發

          換位思考·····
          posts - 19, comments - 53, trackbacks - 0, articles - 283
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          后臺執行命令——守護進程創建

          Posted on 2009-11-29 12:08 Gavin.lee 閱讀(575) 評論(0)  編輯  收藏 所屬分類: Linux shell 入門

           

          當你在終端或控制臺工作時,可能不希望由于運行一個作業而占住了屏幕,因為可能還有更重要的事情要做,比如閱讀電子郵件。對于密集訪問磁盤的進程,你可能希望它能夠在每天的非負荷高峰時間段運行。為了使這些進程能夠在后臺運行,也就是說不在終端屏幕上運行,有幾種選擇方法可供使用:
          • 設置crontab文件,并用它來提交作業。
          • 使用at命令來提交作業。
          • 在后臺提交作業。
          • 使用nohup命令提交作業。

          名詞解釋:
          • cron系統調度進程。可以使用它在每天的非高峰負荷時間段運行作業,或在一周或一月中的不同時段運行。
          • at命令。使用它在一個特定的時間運行一些特殊的作業,或在晚一些的非負荷高峰時間段或高峰負荷時間段運行。
          • & 使用它在后臺運行一個占用時間不長的進程。
          • Nohup 使用它在后臺運行一個命令,即使在用戶退出時也不受影響。

          一個舉一個例子
          crontab
          用crontab提交一個任務在每天晚上7點對zhangwanzhi說i love you
          Shell代碼
          1. /home/l/g/tomotoboy >touch tomotoboycron   
          2. /home/l/g/tomotoboy >cat > tomotoboycron   
          3. 0 19 * * * echo "I love zhangwanzhi"  
          4. /home/l/g/tomotoboy >crontab tomotoboycron   
          5. cron may not be running - call your system administrator   
          6. /home/l/g/tomotoboy >crontab -l   
          7. 0 19 * * * echo "I love zhangwanzhi"  


          刪除crontab 文件
          Shell代碼
          1. /home/l/g/tomotoboy >crontab -r   
          2. cron may not be running - call your system administrator   
          3. /home/l/g/tomotoboy >crontab -l   
          4. crontab: can't open your crontab file.  


          恢復丟失的crontab文件
          如果不小心誤刪了crontab文件,假設你在自己的$HOME目錄下還有一個備份,那么可以將其拷貝到/var/spool/cron/<username >,其中<username>是用戶名。如果由于權限問題無法完成拷貝,可以用:
          Shell代碼
          1. $ crontab <filename>  

          現在我們來恢復tomotoboycron
          Shell代碼
          1. /home/l/g/tomotoboy >crontab tomotoboycron   
          2. cron may not be running - call your system administrator   
          3. /home/l/g/tomotoboy >crontab -l   
          4. 0 19 * * * echo "I love zhangwanzhi"  

          at
          在命令提交一分鐘后執行
          Shell代碼
          1. /home/l/g/tomotoboy >ls -l|grep "tomotoboy"|at now +1 minute   
          2. cron may not be running - call your system administrator   
          3. commands will be executed using /bin/bash   
          4. job 1249815115.a at Sun Aug  9 18:51:55 2009  


          列出已經提交的at任務:
          Shell代碼
          1. /home/l/g/tomotoboy >at -l   
          2. 1249815115.a    Sun Aug  9 18:51:55 2009  
          3. 1249813233.a    Sun Aug  9 18:20:33 2009  
          4. 1249813261.a    Sun Aug  9 18:21:01 2009  


          使用atrm刪除一個任務:
          Shell代碼
          1. /home/l/g/tomotoboy >atrm 1249815115.a   
          2. cron may not be running - call your system administrator   
          3. 1249815115.a: removed   
          4. /home/l/g/tomotoboy >at -l   
          5. 1249813233.a    Sun Aug  9 18:20:33 2009  
          6. 1249813261.a    Sun Aug  9 18:21:01 2009  


          &和nohup
          在后臺運行echo "I love you zhangwanzhi" ,用戶退出時不終止:
          Shell代碼
          1. /home/l/g/tomotoboy >nohup echo "I love you zhangwanzhi" &   
          2. [120784  
          3. /home/l/g/tomotoboy >Sending output to nohup.out   
          4. /home/l/g/tomotoboy >cat nohup.out   
          5. Ilove you zhangwanzhi  
          主站蜘蛛池模板: 崇明县| 绍兴市| 承德市| 泰和县| 辽宁省| 安阳市| 平利县| 武鸣县| 定西市| 金华市| 凤台县| 佛冈县| 南投市| 塔河县| 宣城市| 商城县| 皋兰县| 凌云县| 郑州市| 桐城市| 赤峰市| 海盐县| 岳普湖县| 乌拉特后旗| 安陆市| 阳城县| 阜康市| 浦城县| 合水县| 新沂市| 左贡县| 绍兴市| 沙洋县| 石河子市| 淮北市| 涪陵区| 湟源县| 三都| 襄城县| 九龙县| 略阳县|