我有三台 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 过来是要退出的。
请问各位有什么办法能够实现吗?
1
newaccount 2022-03-24 14:05:08 +08:00
tmux
|
2
CallMeReznov 2022-03-24 14:06:29 +08:00
screen
|
3
princelai OP @newaccount @CallMeReznov 好的我去搜搜怎么用
|
4
brucedone 2022-03-24 14:33:20 +08:00
pm2
|
5
wps353 2022-03-24 14:34:55 +08:00
我喜欢用 screen
|
6
princelai OP 感谢楼上各位,我简单看了下 screen 和 tmux 还要配置 ,而且和我当前配置好的 zsh 不太兼容,我找到一个 Byobu,F2 新建窗口,F3,F4 切换,F6 Detach ,1 分钟就上手,和我的配置也能兼容,这几个功能就够我用了,谢谢!
|
8
duke807 2022-03-24 14:57:21 +08:00 via Android
screen 開機自動啟動某腳本,可參考:
https://www.v2ex.com/t/840645 |
9
SenLief 2022-03-24 17:33:24 +08:00
screen 就一个-R
|
10
njzjz 2022-03-24 17:38:40 +08:00 via iPhone
$ conda install tmux -c conda-forge
$ tmux |
11
zyq2280539 2022-03-24 17:41:00 +08:00
tmux +1
|
12
levinit 2022-03-24 17:55:45 +08:00 via iPhone
不用怀疑 你要的就是 tmux ,也不用什么配置 学会三个用法
新建会话 退出回话保留后台 回到会话 就可以了 |
13
princelai OP @levinit #12 是的是的,我要的就是这三个功能,没想到是靠软件实现,我以为 linux 有什么用法可以做到呢,晚上回去试试了
|
14
haoliang 2022-03-24 18:35:33 +08:00
我觉得这个需求单纯让 python 程序输出到特定文件就够了,在其他 tty\pty 执行 tail -f ;如果需要让程序执行特定操作,通过 signal 也很容易。
基于此,这个需求完全可以使用 systemd 来做:(不过可能需要适时给用户开启 linger ) * systemd-run --user --unit myprogram python xxx.py * journalctl --user --unit myprogram -f (我是重度 tmux 用户,只是提供一个新思路哈) |
15
james122333 2022-03-24 19:29:12 +08:00
有方法阿 只是不说了
|
16
ik 2022-03-24 19:32:12 +08:00 via iPhone
screen 就一条命令,不用配置吧?
|
17
oneisall8955 2022-03-24 19:33:52 +08:00
systemd 一把梭
|
18
fuis 2022-03-24 20:21:09 +08:00
输入 tmux ,运行你的命令
ctrl+b 按一下 d ,退出 tmux a ,attach 回去。用起来很简单 |
19
ClericPy 2022-03-24 20:41:14 +08:00
如果是个稍微正经点的方式, 肯定是 systemd
所以我选 tmux |
20
cev2 2022-03-24 21:15:46 +08:00 1
Byobu 、GNU Screen 、termux 选哪个都行,因为前者只是后两者的前端,你在用 Byobu 时本质上还是在使用 GNU Screen 或 termux 的某一个( Byobu 可以自定义后端为哪个)。
Byobu 一开始是 Ubuntu 的员工为 Ubuntu Server 开发的,后来被移植到其它发行版上。安装完 Ubuntu Server 默认是预装 Byobu 的,Ubuntu 桌面版则不会强制依赖。 前者比后两者的资源占用要高一些,我个人比较习惯 GNU Screen ,用来开机自动启动一些交互类型的软件。 |
21
findex 2022-03-25 06:24:40 +08:00 via iPhone
复杂的有 zdaemon, supervisord
系统内置的有 systemctl 我曾在 2016/2017 抨击过 systemd 这种管天管地管空气的做法,但是现在看来已经流行了,毕竟开源社区里面被混进了很多能对 feature 打对号的大公司的人,例如 redhat 公司。 还有原生 screen 还有 tmux |
22
julyclyde 2022-03-25 11:52:10 +08:00
@oneisall8955 systemd 没办法“调到前台来”啊
|
23
julyclyde 2022-03-25 11:52:59 +08:00
@findex systemd 接管了“登录”之后,screen 、tmux 这类,在用户退出的时候有可能会被干掉
是通过 systemd user linger 参数来控制的 这是不是进一步增加了你讨厌它的点啊? |
24
oneisall8955 2022-03-25 12:12:45 +08:00 via Android
@julyclyde tail 日志文件不行吗
|
25
julyclyde 2022-03-25 12:22:36 +08:00
@oneisall8955 我感觉 lz 的需求似乎是“还打算再互动操作一下”
|
26
oneisall8955 2022-03-25 12:34:07 +08:00 via Android
@julyclyde 了解,类似 htop ,还可以继续发送指令,进行交互
|
27
billgreen1 2023-04-07 12:45:43 +08:00 via iPhone
ssh -t user@serverA ‘tmux -CC new-session -As session’
|