GhostEX
V2EX  ›  问与答

Ubuntu 上如何后台运行 python 爬虫?

  •  
  •   GhostEX · Jun 10, 2016 · 3439 views
    This topic created in 3704 days ago, the information mentioned may be changed or developed.

    用 putty 连接 Ubuntu 运行脚本,但是断开连接爬虫就退出,不能一直在后台执行。

    搜了解决方法在命令前后加以下代码:

    nohup python smzdm.py &
    

    但是报错,哪里写错了么?

    Supplement 1  ·  Jun 10, 2016
    screen 可以完美解决
    18 replies    2016-06-11 10:27:39 +08:00
    reeco
        1
    reeco  
       Jun 10, 2016 via iPhone   ❤️ 1
    screen
    notgod
        2
    notgod  
       Jun 10, 2016   ❤️ 1
    你要看报什么错
    smzdm.py 脚本本身的错误 还是哪里的

    这么写
    nohup python /path/smzdm.py > _log.txt 2>&1 &

    你那么写 终端退出 pid 就阵亡了
    ug888168
        3
    ug888168  
       Jun 10, 2016 via Android   ❤️ 1
    screen 应该能帮你
    mornlight
        4
    mornlight  
       Jun 10, 2016   ❤️ 1
    建议上 supervisor ,你这种需求写一下文件路径就行,很简单
    GhostEX
        5
    GhostEX  
    OP
       Jun 10, 2016
    @notgod 按格式写,输出了 [21] 20030 ,好像没有执行的迹象。。。
    GhostEX
        6
    GhostEX  
    OP
       Jun 10, 2016
    @notgod 或者说怎么判断有没有执行。。。
    notgod
        7
    notgod  
       Jun 10, 2016
    jobs
    或者 ps aux|grep 'smzdm.py'
    notgod
        8
    notgod  
       Jun 10, 2016
    @GhostEX

    你那个输出应该是返回的 pid

    查看有无进程
    jobs
    或者 ps aux|grep 'smzdm.py'
    GhostEX
        9
    GhostEX  
    OP
       Jun 10, 2016
    @notgod 哭了,运行了 21 次。。。
    GhostEX
        10
    GhostEX  
    OP
       Jun 10, 2016
    ```python
    root@iZu1imazcmtZ:/# jobs
    [1] Running nohup python smzdm.py & (wd: /var/www)
    [2] Running nohup python smzdm.py & (wd: /var/www)
    [3] Running nohup python smzdm.py & (wd: /var/www)
    [4] Running nohup python smzdm.py & (wd: /var/www)
    [5] Running nohup python smzdm.py & (wd: /var/www)
    [6] Running nohup python smzdm.py & (wd: /var/www)
    [7] Running nohup python smzdm.py & (wd: /var/www)
    [8] Running nohup python smzdm.py & (wd: /var/www)
    [9] Running nohup python smzdm.py & (wd: /var/www)
    [10] Running nohup python smzdm.py > out.log & (wd: /var/www)
    [11] Running nohup python -u smzdm.py > out.log & (wd: /var/www)
    [12] Running nohup python smzdm.py & (wd: /var/www)
    [13] Running nohup python /var/www/smzdm.py > _log.txt 2>&1 & (wd: /var/www)
    [14] Running nohup python /var/www/smzdm.py > _log.txt & (wd: /var/www)
    [16] Running nohup python /var/www/smzdm.py > _log.txt & (wd: /var/www)
    [17] Running nohup python smzdm.py > _log.txt & (wd: /var/www)
    [18] Running nohup python /var/www/smzdm.py > _log.txt 2>&1 &
    [19] Running nohup python /var/www/smzdm.py > _log.txt 2>&1 &
    [20]- Running nohup python /var/www/smzdm.py > _log.txt 2>&1 &
    [21]+ Running nohup python /var/www/smzdm.py > _log.txt 2>&1 &
    root@iZu1imazcmtZ:/#
    ```
    是该理解成是 21 个进程么?
    spikeLIN
        11
    spikeLIN  
       Jun 10, 2016 via iPhone
    直接上定时也行⋯⋯
    RockyLee
        12
    RockyLee  
       Jun 10, 2016
    screen 时间久了也会挂掉的
    ThreeBody
        13
    ThreeBody  
       Jun 10, 2016 via Android   ❤️ 1
    @RockyLee screen 会挂么?我好像没遇到过,不过以前遇到过 screen 被挂起的问题,进不去,不过用-D 参数就可以进去了,不知道你说的是不是这个情况
    sen506
        14
    sen506  
       Jun 10, 2016 via Android
    tmux ?或者不要后台一直运行,改成定时的?
    prondtoo
        15
    prondtoo  
       Jun 10, 2016
    supervisor
    RockyLee
        16
    RockyLee  
       Jun 10, 2016
    @ThreeBody 额,很久的事了,记不得了
    sciooga
        17
    sciooga  
       Jun 11, 2016
    daemon ?
    exuxu
        18
    exuxu  
       Jun 11, 2016
    tmux +2
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   853 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 21:12 · PVG 05:12 · LAX 14:12 · JFK 17:12
    ♥ Do have faith in what you're doing.