Distributions
› Ubuntu
› Fedora
› CentOS
中文资源站
› 网易开源镜像站
princelai
V2EX  ›  Linux

问一个 Linux 上 nohup 和后台任务的问题

  •  
  •   princelai · Mar 24, 2022 · 5727 views
    This topic created in 1687 days ago, the information mentioned may be changed or developed.

    我有三台 Linux 机器,A,B,C,A 是服务器,B,C 是我使用的家用机

    我有个 python 脚本,需要在 A 机器上运行,运行后就退出登陆,所以启动命令类似于

    nohup python xxx.py &
    

    这个脚本类似于 htop 命令,可以交互查看一些信息,但是需要持续在后台运行,输出也不需要重定向,查看要把任务调到前台来交互查看。

    B,C 两个机器需要 ssh 到 A 机器,我想要 fg 把任务调出来查看,不用的时候还能够 Ctrl+z,bg 1 这个样子放到后台,但是需要用 nohup 方式,因为 ssh 过来是要退出的。

    请问各位有什么办法能够实现吗?

    27 replies  •  2023-04-07 12:45:43 +08:00
    newaccount
    newaccount
    Mar 24, 2022
    1
    tmux
    CallMeReznov
    CallMeReznov
    Mar 24, 2022
    2
    screen
    princelai
    princelai
    OP
    Mar 24, 2022
    3
    @newaccount @CallMeReznov 好的我去搜搜怎么用
    brucedone
    brucedone
    Mar 24, 2022
    4
    pm2
    wps353
    wps353
    Mar 24, 2022
    5
    我喜欢用 screen
    princelai
    princelai
    OP
    Mar 24, 2022
    6
    感谢楼上各位,我简单看了下 screen 和 tmux 还要配置 ,而且和我当前配置好的 zsh 不太兼容,我找到一个 Byobu,F2 新建窗口,F3,F4 切换,F6 Detach ,1 分钟就上手,和我的配置也能兼容,这几个功能就够我用了,谢谢!
    lixuanyy
    lixuanyy
    Mar 24, 2022 via iPhone❤️1
    7
    @princelai screen 不需要配置啊!就命令开启,-S 开启,-r 还原窗口
    duke807
    duke807
    Mar 24, 2022 via Android
    8
    screen 開機自動啟動某腳本,可參考:
    https://www.v2ex.com/t/840645
    SenLief
    SenLief
    Mar 24, 2022
    9
    screen 就一个-R
    njzjz
    njzjz
    Mar 24, 2022 via iPhone
    10
    $ conda install tmux -c conda-forge
    $ tmux
    zyq2280539
    zyq2280539
    Mar 24, 2022
    11
    tmux +1
    levinit
    levinit
    Mar 24, 2022 via iPhone
    12
    不用怀疑 你要的就是 tmux ,也不用什么配置 学会三个用法
    新建会话
    退出回话保留后台
    回到会话

    就可以了
    princelai
    princelai
    OP
    Mar 24, 2022
    13
    @levinit #12 是的是的,我要的就是这三个功能,没想到是靠软件实现,我以为 linux 有什么用法可以做到呢,晚上回去试试了
    haoliang
    haoliang
    Mar 24, 2022
    14
    我觉得这个需求单纯让 python 程序输出到特定文件就够了,在其他 tty\pty 执行 tail -f ;如果需要让程序执行特定操作,通过 signal 也很容易。

    基于此,这个需求完全可以使用 systemd 来做:(不过可能需要适时给用户开启 linger )
    * systemd-run --user --unit myprogram python xxx.py
    * journalctl --user --unit myprogram -f

    (我是重度 tmux 用户,只是提供一个新思路哈)
    james122333
    james122333
    Mar 24, 2022
    15
    有方法阿 只是不说了
    ik
    ik
    Mar 24, 2022 via iPhone
    16
    screen 就一条命令,不用配置吧?
    itechify
    itechify
    Mar 24, 2022
    17
    systemd 一把梭
    fuis
    fuis
    Mar 24, 2022
    18
    输入 tmux ,运行你的命令
    ctrl+b 按一下 d ,退出
    tmux a ,attach 回去。用起来很简单
    ClericPy
    ClericPy
    Mar 24, 2022
    19
    如果是个稍微正经点的方式, 肯定是 systemd

    所以我选 tmux
    cev2
    cev2
    Mar 24, 2022❤️1
    20
    Byobu 、GNU Screen 、termux 选哪个都行,因为前者只是后两者的前端,你在用 Byobu 时本质上还是在使用 GNU Screen 或 termux 的某一个( Byobu 可以自定义后端为哪个)。
    Byobu 一开始是 Ubuntu 的员工为 Ubuntu Server 开发的,后来被移植到其它发行版上。安装完 Ubuntu Server 默认是预装 Byobu 的,Ubuntu 桌面版则不会强制依赖。
    前者比后两者的资源占用要高一些,我个人比较习惯 GNU Screen ,用来开机自动启动一些交互类型的软件。
    findex
    findex
    Mar 25, 2022 via iPhone
    21
    复杂的有 zdaemon, supervisord
    系统内置的有 systemctl 我曾在 2016/2017 抨击过 systemd 这种管天管地管空气的做法,但是现在看来已经流行了,毕竟开源社区里面被混进了很多能对 feature 打对号的大公司的人,例如 redhat 公司。
    还有原生 screen
    还有 tmux
    julyclyde
    julyclyde
    Mar 25, 2022
    22
    @oneisall8955 systemd 没办法“调到前台来”啊
    julyclyde
    julyclyde
    Mar 25, 2022
    23
    @findex systemd 接管了“登录”之后,screen 、tmux 这类,在用户退出的时候有可能会被干掉
    是通过 systemd user linger 参数来控制的
    这是不是进一步增加了你讨厌它的点啊?
    itechify
    itechify
    Mar 25, 2022 via Android
    24
    @julyclyde tail 日志文件不行吗
    julyclyde
    julyclyde
    Mar 25, 2022
    25
    @oneisall8955 我感觉 lz 的需求似乎是“还打算再互动操作一下”
    itechify
    itechify
    Mar 25, 2022 via Android
    26
    @julyclyde 了解,类似 htop ,还可以继续发送指令,进行交互
    billgreen1
    billgreen1
    Apr 7, 2023 via iPhone
    27
    ssh -t user@serverA ‘tmux -CC new-session -As session’
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1726 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 126ms · UTC 17:22 · PVG 01:22 · LAX 09:22 · JFK 12:22
    ♥ Do have faith in what you're doing.