You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu Server 22.04.1下XMRig开机自启配置问题:root用户运行时无法恢复screen会话

Ubuntu Server 22.04.1下XMRig开机自启配置问题:root用户运行时无法恢复screen会话

嘿,我来帮你搞定这个问题~ 你遇到的情况其实很好解释:当你把systemd服务的User改成root后,screen会话是创建在root用户的环境里的,而你平时用的普通用户根本看不到root名下的screen会话,所以才会弹出「没有可恢复的screen」的提示。下面给你几个实用的解决办法,你可以根据自己的需求选:

方法一:切换到root用户再恢复会话

这是最简单直接的办法,毕竟会话本来就是root创建的:

  • 先执行sudo su -或者sudo -i切换到root用户(一定要加-或者-i,这样才会加载root的完整环境变量,不然可能还是找不到会话)
  • 然后输入screen -r xmrig就能正常恢复会话了
  • 用完之后输入exit就能回到普通用户环境

方法二:让普通用户有权限访问root的screen会话(谨慎使用)

如果不想每次都切root,可以调整screen的权限配置,但这个操作有一定安全风险,只有当服务器只有你自己用的时候才推荐:

  1. 编辑screen的全局配置文件:sudo nano /etc/screenrc,在文件末尾加上一行:
    multiuser on
    
  2. 保存退出后,切换到root用户:sudo su -,然后恢复root的screen会话:screen -x xmrig
  3. 在screen会话里输入acladd 你的普通用户名(比如你的用户名叫powerkey,就输acladd powerkey),然后按Ctrl+A再按D detach会话
  4. 回到普通用户后,就可以用screen -x root/xmrig来访问这个会话了

方法三:不用root也能让XMRig用上hugepages(最安全)

其实hugepages不一定非要root才能用,我们可以调整系统配置,让普通用户也能利用hugepages,这样既不用root运行XMRig,也能保持性能,还能正常用screen:

  1. 先查看你的普通用户的GID:id -g,记住输出的数字
  2. 编辑sysctl配置文件:sudo nano /etc/sysctl.conf,添加下面两行(第一行的数值可以根据XMRig的需求调整,一般128或256就行):
    vm.nr_hugepages=128
    vm.hugetlb_shm_group=你的GID数字
    
  3. 执行sudo sysctl -p让配置立即生效
  4. 把systemd服务文件里的User改回你的普通用户名,重启服务:sudo systemctl daemon-reload && sudo systemctl restart xmrig.service
  5. 之后XMRig就能以普通用户身份运行,同时正常使用hugepages,你用普通用户执行screen -r xmrig也能正常恢复会话了

为啥原来的方法不行?简单说,每个用户的screen会话都存在各自的专属目录里:普通用户的在/run/screens/S-你的用户名,root的在/run/screens/S-root,普通用户没有权限访问root的目录,自然看不到对应的会话。

备注:内容来源于stack exchange,提问作者Powerkey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 08:54:11