问题
在用nohup训练DDP程序的时候遇到了一点bug,训练了两次一直是跑到一半就被signal kill
解决
搜了一下是因为nohup用在DDP时会出现bug,参考链接
弃用了nohup顺便记录一下几种后台运行方法
后台运行方法
1.nohup:很简单直接nohup+命令,用DDP的时候不要用这个命令,输出会输出到nohup.out也可以自定义输出
nohup bash train.sh #输出到nohup.out
nohup bash train.sh > train.log #输出到 train.log,默认会覆盖同名文件从头开始写
2.screen:替代nohup,开远程会话窗口
常见命令
#创建指定名字的窗口
screen -S session_name
#创建窗口,名字会自己生成
screen
#detach当前窗口
Crtl+a+d
#列出窗口列表
screen -ls
#手动连接某窗口
screen -r session_name
3.tmux:和screen差不多,开远程独立窗口运行程序,需要的时候attach即可
#创建窗口,名字会自己生成
tmux
#detach当前窗口
Crtl+b+d
#列出窗口列表
tmux ls
#手动连接某窗口
tmux a -t name
#链接上次断开的session
tmux -r
我的两台服务器一台装了screen一台装了tmux都试了一下hhh在组里服务器上瞎折腾+1
kill掉某程序
ps -ef|grep transfiner|grep -v grep|awk ‘{print $2}’|xargs kill -9