代码之家  ›  专栏  ›  技术社区  ›  Manvi

Bash脚本没有以nohup[duplicate]在后台运行

  •  -1
  • Manvi  · 技术社区  · 6 年前

    [user@host proj]$ test.sh
    

    在执行ctrl-C之后,我看到日志每分钟都会出现。

    [user@host proj]$ cat logs/log.log
    Test job 1 executed at : 2018-10-09 14:16:00.000787
    Test job 1 executed at : 2018-10-09 14:17:00.001890
    Test job 1 executed at : 2018-10-09 14:18:00.001861
    

    但当我用nohup在后台运行相同的脚本时

    [user@host proj]$ nohup test.sh &
    [1] 24884
    [user@host proj]$ nohup: ignoring input and appending output to ‘nohup.out’
    

    24949 user  20   0  113172   1444   1216 S  0.0  0.0   0:00.00 test.sh
    24952 user  20   0  516332  66644  17344 S  0.0  0.8   0:00.65 python
    

    但我看不到任何要写在日志文件中的内容。

    不确定出了什么问题。任何能指引我正确方向的建议都将不胜感激。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Charles Duffy Tom    6 年前

    如果nohup.out中没有任何内容被打印出来,那么我认为您没有任何内容可以回显到nohup.out文件。尝试使用 set -xv #/bin/bash 如果您使用的是bash。现在运行shell脚本时,nohup将至少有一个从shell脚本运行的python脚本条目,如下所示。

    user@host用法:~/scripts$cat nohup.out

    python /home/madbala/scripts/append_file.py + python /home/madbala/scripts/append_file.py

    1. Python脚本名(对不起,我对Python不太了解):append_file.py

      #!/usr/bin/python
      from datetime import datetime
      import time
      with open("test.txt", "a") as myfile:
         for x in range(15):
            myfile.write('appended text %s \n' %datetime.now())
            time.sleep(2)
      
    2. 调用上述python脚本的Shell脚本:run \u py \u Script.sh

        #!/bin/bash
        set -xv
        python /home/madbala/scripts/append_file.py
      

    nohup run_py_script.sh & 我得到的输出,因为我有 第十五套 (这实际上支持shell脚本中的详细日志记录—您也可以使用 set -x ).

    当我评出 第十五套 使用 #set -xv 我们没有内容。

    Screenshot