lightning加载无法后台运行

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:

【TiDB 版本】
v4.0.10


image

【问题描述】
lighting加载无法后台运行,即使使用nohup命令启动,关闭命令行窗口后,lightning进程会自己停止
加载命令:nohup ./tidb-lightning -config load.toml &

每次需要执行如下操作才能后台运行,比较繁琐,大数据量加载耗时较长,不后台运行很容易中断,建议优化
1.执行加载命令
2.输入ctrl + z 暂停任务
3.bg将其放入后台
4.disown -h 将这个作业忽略HUP信号
5.测试会话中断,任务继续运行不受影响


若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

这不应该是 lightning 应该做的事情,lightning 执行之后在"前台"运行是对进程管理工具友好的,也方便容器化。

你的需求完全可以用这些工具来满足

作为大数据量加载时需要消耗几天的加载工具,要求支持后台运行我觉得是个很合理的需求。从使用角度而言,加载只需要一条命令启动,但是保证加载进程不会因为命令行窗口关闭而异常中断需要使用其他手段,本身很不友好。
还有,我找到官方文档的说明了,建议nohup放在脚本中,我再试一下。之前没注意这一条,这个是我的锅:sweat:

实测解决问题,我没注意看这个,我的锅

:+1:

嗯,如果加上 --mode background 参数就可以 daemon化 那是很方便的,你说的对

官方文档里的说明很离谱啊,nohup本来就是不受 HUP 信号的影响,不知道是不是别的什么 bug

nohup - run a command immune to hangups

而且理论上你加了 nohup 之后再 disown 是多余的

之前scp也是用了nohup后,关闭终端scp会中断,然后用我下面的命令启动才行,具体为啥不清楚,这个得找懂操作系统代码的大佬解释了。还有我下面的操作,步骤1是前台执行,我没说清楚,这个操作没有用nohup
1.执行加载命令(前台执行)
2.输入ctrl + z 暂停任务
3.bg将其放入后台
4.disown -h 将这个作业忽略HUP信号
5.测试会话中断,任务继续运行不受影响

不知道文档里为啥说 lightning 用 nohup 执行的时候,会被 HUP 中断,你说的 scp 我试了一下,没有问题(Debian 10 , bash 5.0.3 )

$ dd if=/dev/zero of=5g count=1024 bs=5M
$ nohup scp 5g remote-host: &
[1] 17902
nohup: ignoring input and appending output to 'nohup.out'
$ logout

另启一个会话,可以看到这个 job 还在

$ ps fx
...
17902 ?        S      0:02 scp 5g  remote-host:
...

是不是因为你是温柔的logout,我都是直接关窗口:sweat:
还有我一般都是centos

我在centos上scp挂了nohup,logout后scp在后台执行正常,但是直接关窗口的话就完蛋。
估计lightning可能也是一样,现在环境被征用了,有时间我再试试lightning
说来说去还是我操作的锅,看来logout和直接关窗口给操作系统发的信号不一样

建议参考官方文档的相关介绍来完成 Lightning 使用,如果有其他的问题,建议创建新的帖子。