日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

背景

有時我們運行某個任務,需要保證任務不占據終端影響其他作業,或者保證當前session退出后,任務依然可以繼續運行。

方案

  • command &
  • nohup command &
  • CTRL+Z;bg %n; disown %n
  • setsid command

使用方法

command &

該方法可以使任務放在后臺執行,從而不影響當前終端其他作業,但是如果當前終端退出,也會導致后臺任務接收到SIGHUP信號并退出。

-rwx------. 1 Appmanager devops 69 Jun 19 06:07 findBigFiles.bash
[appmanager@localhost toutiao]$ cat findBigFiles.bash 
#! /bin/bash

sleep 1m
find $HOME -size +10M | xargs ls -l --block-size=M
[appmanager@localhost toutiao]$ ./findBigFiles.bash > output.log &
[1] 2644

## 退出當前終端,新開終端并查看進程
[appmanager@localhost ~]$ ps -fu appmanager
UID          PID    PPID  C STIME TTY          TIME CMD
appmana+    2769    2768  0 06:08 pts/0    00:00:00 -bash
appmana+    2818    2769  0 06:08 pts/0    00:00:00 ps -fu appmanager
 
## 重新后臺執行程序
[appmanager@localhost toutiao]$ ps -fu appmanager                 
UID          PID    PPID  C STIME TTY          TIME CMD
appmana+    2769    2768  0 06:08 pts/0    00:00:00 -bash
appmana+    2889    2769  0 06:11 pts/0    00:00:00 /bin/bash ./findBigFiles.bash
appmana+    2890    2889  0 06:11 pts/0    00:00:00 sleep 1m
appmana+    2891    2769  0 06:12 pts/0    00:00:00 ps -fu appmanager

[appmanager@localhost toutiao]$ ps -fu appmanager     
UID          PID    PPID  C STIME TTY          TIME CMD
appmana+    2769    2768  0 06:08 pts/0    00:00:00 -bash
appmana+    2906    2769  0 06:13 pts/0    00:00:00 ps -fu appmanager
[1]+  Done                    ./findBigFiles.bash > output.log
[appmanager@localhost toutiao]$ cat output.log 
-rw-------. 1 appmanager devops 35M May 28 19:06 /home/appmanager/.cache/pip/http/d/6/1/f/e/d61fe4b09676f0692c240e67193e3af065d7b9e72f8577595151e51f
-rw-r--r--. 1 appmanager devops 11M May 16 08:49 /home/appmanager/mnt/ansible/roles/Tomcat/files/Apache-tomcat-8.5.79.tar.gz

nohup command &

nohup可以使shell命令忽略SIGHUP信號,避免父進程退出時,子進程也退出。&使任務后臺執行。

[appmanager@localhost toutiao]$ nohup $HOME/tmp/toutiao/findBigFiles.bash > output.log 2>&1 &
## 退出當前終端,新開終端并查看進程
[appmanager@localhost ~]$ psfu 
UID          PID    PPID  C STIME TTY          TIME CMD
appmana+    3045       1  0 06:20 ?        00:00:00 /bin/bash /home/appmanager/tmp/toutiao/findBigFiles.bash
appmana+    3046    3045  0 06:20 ?        00:00:00 sleep 1m
appmana+    3102    3101  1 06:21 pts/0    00:00:00 -bash
appmana+    3134    3102  0 06:21 pts/0    00:00:00 ps -fu appmanager

[appmanager@localhost ~]$ psfu 
UID          PID    PPID  C STIME TTY          TIME CMD
appmana+    3102    3101  0 06:21 pts/0    00:00:00 -bash
appmana+    3154    3102  0 06:22 pts/0    00:00:00 ps -fu appmanager
[appmanager@localhost ~]$ cat tmp/toutiao/output.log 
nohup: ignoring input
-rw-------. 1 appmanager devops 35M May 28 19:06 /home/appmanager/.cache/pip/http/d/6/1/f/e/d61fe4b09676f0692c240e67193e3af065d7b9e72f8577595151e51f
-rw-r--r--. 1 appmanager devops 11M May 16 08:49 /home/appmanager/mnt/ansible/roles/tomcat/files/apache-tomcat-8.5.79.tar.gz

CTRL+Z;bg %n; disown %n

使用disown可以忽略執行jobs id接收到的SIGHUP信號,避免父進程的退出而導致子進程的退出。

## CTRL + 會暫停當前執行的程序
[appmanager@localhost toutiao]$ bash -x ./findBigFiles.bash > output.log 2>&1
^Z
[1]+  Stopped                 bash -x ./findBigFiles.bash > output.log 2>&1
[appmanager@localhost toutiao]$ bg %1
[1]+ bash -x ./findBigFiles.bash > output.log 2>&1 &
[appmanager@localhost toutiao]$ disown %1

## 退出當前終端,新開終端并查看進程
+ sleep 1m
+ xargs ls -l --block-size=M
+ find /home/appmanager -size +10M
-rw-------. 1 appmanager devops 35M May 28 19:06 /home/appmanager/.cache/pip/http/d/6/1/f/e/d61fe4b09676f0692c240e67193e3af065d7b9e72f8577595151e51f
-rw-r--r--. 1 appmanager devops 11M May 16 08:49 /home/appmanager/mnt/ansible/roles/tomcat/files/apache-tomcat-8.5.79.tar.gz

setsid command

setsid指定當前進程的父進程為1,不受當前session的退出的影響,但是前提是需要在命令執行時就設置。

[appmanager@localhost toutiao]$ setsid ./findBigFiles.bash > output.log 2>&1 &
[1] 3823
[appmanager@localhost toutiao]$ psfu 
UID          PID    PPID  C STIME TTY          TIME CMD
appmana+    3729    3728  0 06:43 pts/0    00:00:00 -bash
appmana+    3824       1  0 06:49 ?        00:00:00 /bin/bash ./findBigFiles.bash
appmana+    3825    3824  0 06:49 ?        00:00:00 sleep 1m
appmana+    3826    3729  0 06:49 pts/0    00:00:00 ps -fu appmanager
[1]+  Done                    setsid ./findBigFiles.bash > output.log 2>&1

## 退出當前終端,新開終端并查看進程
[appmanager@localhost toutiao]$ psfu 
UID          PID    PPID  C STIME TTY          TIME CMD
appmana+    3729    3728  0 06:43 pts/0    00:00:00 -bash
appmana+    3824       1  0 06:49 ?        00:00:00 /bin/bash ./findBigFiles.bash
appmana+    3825    3824  0 06:49 ?        00:00:00 sleep 1m
appmana+    3827    3729  0 06:49 pts/0    00:00:00 ps -fu appmanager
[appmanager@localhost toutiao]$ ll
total 4
-rwx------. 1 appmanager devops 74 Jun 19 06:11 findBigFiles.bash
-rw-r--r--. 1 appmanager devops  0 Jun 19 06:49 output.log
[appmanager@localhost toutiao]$ cat /opt/
cat: /opt/: Is a directory
[appmanager@localhost toutiao]$ cat output.log 
-rw-------. 1 appmanager devops 35M May 28 19:06 /home/appmanager/.cache/pip/http/d/6/1/f/e/d61fe4b09676f0692c240e67193e3af065d7b9e72f8577595151e51f
-rw-r--r--. 1 appmanager devops 11M May 16 08:49 /home/appmanager/mnt/ansible/roles/tomcat/files/apache-tomcat-8.5.79.tar.gz

分享到:
標簽:linux
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定