Heim  >  Fragen und Antworten  >  Hauptteil

linux - ssh连接断开后怎么保证进程不死

我经常有这样的需求,通过ssh连接到服务器上,运行一个脚本。
因为脚本要运行很久,所以就丢在那里,看着打印输出。
一会儿不管他,电脑就进入休眠了,网络也就断了,ssh就断了,服务器运行的进程也挂了。
有没有什么办法,可以让这种情况下进程不死,然后再次练上去还可以继续看脚本运行的打印

阿神阿神2745 Tage vor1290

Antworte allen(14)Ich werde antworten

  • 巴扎黑

    巴扎黑2017-04-17 11:09:25

    准备运行
    nohup xxx &

    如果已经运行了
    ctrl+z 暂停
    jobs 看到暂停任务的id
    bg id
    disown id #注:不加这句的话,终端结束时进程会收到SIGHUP,该信号对应的默认操作就是结束进程

    除了nohup之外也可以用setsid,但是最好的还是用screen这类东西。

    Antwort
    0
  • 黄舟

    黄舟2017-04-17 11:09:25

    lz需要的是tmux或者screen

    Antwort
    0
  • 大家讲道理

    大家讲道理2017-04-17 11:09:25

    试一下nohup

    nohup - run a command immune to hangups, with output to a non-tty

    http://www.21andy.com/blog/20071121/6...

    Antwort
    0
  • 巴扎黑

    巴扎黑2017-04-17 11:09:25

    装个screen吧
    参见:http://www.ibm.com/developerworks/cn/...

    Antwort
    0
  • 高洛峰

    高洛峰2017-04-17 11:09:25

    脚本最后加上 &

    Antwort
    0
  • 高洛峰

    高洛峰2017-04-17 11:09:25

    找个东西压着键盘。。。

    Antwort
    0
  • 阿神

    阿神2017-04-17 11:09:25

    tmux 或者 screen

    byobu 只是一个 tmux/screen 的美化包装

    Antwort
    0
  • PHP中文网

    PHP中文网2017-04-17 11:09:25

    这是因为ssh有时间长度,如果一段时间内客户端没有响应,服务器就会断掉连接。
    /etc/ssh/ssh_config中加入
    ServerAliveInterval 60
    一行,就可以了

    Antwort
    0
  • 巴扎黑

    巴扎黑2017-04-17 11:09:25

    byobu 你值得拥有! 比screen更好用

    Antwort
    0
  • 大家讲道理

    大家讲道理2017-04-17 11:09:25

    setsid - run a program in a new session

    Antwort
    0
  • StornierenAntwort