2026年chroot的Linux服务配置-当云服务器真正用起来

chroot的Linux服务配置-当云服务器真正用起来在上一篇折腾的文章中介绍了已经 root 的 Android 手机部署 Linux 榨干性能的具体操作 此处应该有链接 但是我不知道怎么插 如果折腾完拉一个 fastfetch 就放那了 那也太浪费了 好不容易让已经逝世的 Android 再次复活 当然得让它把活干起来 我们手里不养闲机 跟着上一个教程完整弄完后 我们拥有了一个标准的 ARM Linux 系统 并且已经具备以下特性

大家好,我是讯享网,很高兴认识大家。这里提供最前沿的Ai技术和互联网信息。



在上一篇折腾的文章中介绍了已经root的Android手机部署Linux榨干性能的具体操作

(此处应该有链接,但是我不知道怎么插)

如果折腾完拉一个fastfetch就放那了, 那也太浪费了, 好不容易让已经逝世的Android再次复活, 当然得让它把活干起来, 我们手里不养闲机

跟着上一个教程完整弄完后, 我们拥有了一个标准的ARM Linux系统, 并且已经具备以下特性

  • 随着LinuxDeploy开机自启动, 自动获取CPU唤醒锁
  • 基本的sysv服务管理, SSH服务能被sysv自动拉起, 开机不需要任何操作就可以SSH连接
  • 可以连接外网, 下载/安装和更新软件

由于Android内核限制不支持docker以及systemd, 但是我们可以使用其他的服务管理

在此之前, 需要进行一些小的问题处理

解决联网问题之后, 访问有些HTTPS地址会提示x509, 能ping通域名, 但是无法通过curl等工具实际访问页面

这是因为我们部署的系统太干净了, 缺少基础的根CA证书, 安装一下就能解决

apt update && apt install ca-certificates 

安装后还提示509, 可尝试在~/.bashrc中设置环境变量export SSL_CERT_FILE=/etc/tls/cert.pem

  • 编辑 /etc/passwd 在对应用户名后将sh更改为bash
  • 编辑 ~/.bashrc 取消注释其中要显示颜色的行
    source ~/.bashrc # You may uncomment the following lines if you want `ls' to be colorized: export LS_OPTIONS='--color=auto' eval "$(dircolors)" alias ls='ls $LS_OPTIONS' alias ll='ls $LS_OPTIONS -l' alias l='ls $LS_OPTIONS -lA' 

    修改完成后重新开启一个SSH连接测试效果

Android 15+版本, Google 引入了极其严格的后台进程限制(Background Execution Limits)和幻影进程杀手(Phantom Process Killer), 像Termux这种应用只要在后台占用的CPU过高, 或者子进程过多(比如超过32个), 可能会被系统杀后台

为避免这些问题, 让服务器稳定运行, 除了配置时提到的允许权限/打开通知/允许后台/电量使用无限制之外, 还可以进行以下操作, 确保万无一失

用termux(root)或者adb shell(root)连接, 打开命令行, 输入su切换root

su # 增加幻影进程的最大数量限制至最大值 (LineageOS上未找到该选项, 但还是执行一下) device_config put activity_manager max_phantom_processes  # 禁用幻影进程监控开关 setprop persist.sys.fflag.override.settings_enable_monitor_phantom_procs false 

配置好环境之后不要轻易更新系统, 否则可能导致配置失效

若无特殊说明, 命令行都是在chroot中的Linux下执行, 清华源可以按照自己的需要替换, 使用https前先按照第一步处理好ca

cd /etc/apt cp sources.list sources.list.bak sed -i 's/deb.debian.org/mirrors.tuna.tsinghua.edu.cn/g' sources.list apt update # 确保ca-certificates已经安装,https访问正常 sed -i 's/http:/https/g' sources.list apt update apt dist-upgrade 

自带的sysv可以用来管理一些提供了sysv脚本的服务, 比如ssh和supervisor, 但很多服务应用可能只提供systemd配置, 或者根本没有提供服务管理配置, 自己手撸sysv的服务管理脚本挺麻烦, 使用supervisor来配置服务会简单很多

apt安装supervisor, sysv设置supervisor自启动

apt install supervisor service supervisor start service --status-all 

supervisor的配置文件与日志文件: 配置/etc/supervisor/supervisor.config, 日志/var/log/supervisor

常用命令

supervisorctl reload # 会重启所有管理的进程, 如果只是加载新添加的配置可以运行以下指令 supervisorctl reread # 重新读取配置文件 supervisorctl update # 刷新配置到进程组 supervisorctl help # 查看可用命令 supervisorctl -h # 帮助 

若需要创建新的服务, 在/etc/supervisor/conf.d目录下新建服务配置即可管理服务

配置模板如下, 不是每一项都需要

[program:my_service] ; 启动命令,注意这里写绝对路径, 不支持管道/通配符等复杂运算 command=/usr/local/bin/my_server --port 8080 --config /etc/my_server/config.json ; 程序运行的运行目录 (相当于 cd 到这个目录再执行) directory=/opt/my_server/ ; 以哪个用户的身份运行 (强烈建议不要全用 root) user=www-data ; 随 supervisord 启动而启动 autostart=true ; 程序异常退出后自动重启 autorestart=true ; 重启重试次数 startretries=3 ; 环境变量设置 (如果有的话) environment=RUST_LOG="info",NODE_ENV="production" ; 标准输出日志路径 stdout_logfile=/var/log/my_server_out.log stdout_logfile_maxbytes=50MB stdout_logfile_backups=3 ; 错误输出日志路径 stderr_logfile=/var/log/my_server_err.log 

包括siyuan在内的一些服务之前在termux篇中也说过, 但是标准的ARM Linux环境兼容性更好, 不容易出现各种奇怪的问题

在Termux中搭建HTTP导航页服务时我没有使用lighttpd而是使用darkhttpd, 就是因为兼容性问题

因此, 我觉得有root时用chroot搭建arm linux环境, 没有root时在termux中用proot搭建arm linux环境才是**选择

在官网下载linux-arm64版本(依据设备架构, 后续以arm64为例)

解压到~/.local/bin/siyuan/

创建supervisor服务配置 /etc/supervisor/conf.d/siyuan.conf

[program:siyuan] directory=/root/.local/bin/siyuan/resources command=/root/.local/bin/siyuan/resources/kernel/SiYuan-Kernel -accessAuthCode mypasswd -lang zh_CN -workspace /root/siyuan -wd /root/.local/bin/siyuan/resources autostart=true autorestart=true startreties=3 stderr_logfile=/var/log/siyuan.err stdout_logfile=/var/log/siyuan.log stdout_logfile_maxbytes=10MB stdout_logfile_backups=3 ;redirect_stderr=true environment=RUN_IN_CONTAINER=1 

启动服务, 查看日志

supervisorctl update cat /var/log/siyuan.log 

若一切正常, 可以访问http://ip:6806愉快使用

这是一个Web端的VSCode, 在Termux环境下我也尝试部署过, 发现启动正常但是大多数插件都提示不支持Web平台, 在chroot环境下又部署了一个, 发现插件都可以用

下载code-server需要设置代理, 直接使用官方脚本

# 设置为自己局域网内的代理地址 export https_proxy=http://192.168.9.7:10808 # 使用官方脚本安装 curl -fsSL https://code-server.dev/install.sh | sh 

如果代理不方便处理, 可以直接从github上下载Linux ARM64版本, 解压到设备上

先运行一次, 生成基础配置文件

code-server # 修改配置文件 nano ~/.config/code-server 

配置如下

# 监听地址和端口 bind-addr: 0.0.0.0:8080 # 授权方式 password 或者 none (无密码) auth: password # 密码 password: asdfqwert # 开启自签名cert https (自签名的https浏览器会提示证书不安全, 忽略即可) cert: true 

最好开启https访问, 否则会有些功能受限制, 浏览器提示证书风险不用管, 反正只是局域网访问

supervisor服务配置 /etc/supervisor/conf.d/code-server.conf

[program:code-server] directory=/root command=/usr/bin/code-server autostart=true autorestart=true startreties=3 stderr_logfile=/var/log/code-server.err stdout_logfile=/var/log/code-server.log stdout_logfile_maxbytes=10MB stdout_logfile_backups=3 

如果扩展安装/下载失败, 可以自己下载, 拖到vscode文件目录中, 命令行安装

code-server --install-extension ./xxxx.vsix 

安装自己开发常用扩展, 比如: neo-git-graph, dracula theme, indent-rainbow, render line endings, python, python debugger, godot-tools, godot files, clangd

apt install lighttpd -y 

安装完成后已经自动在/etc/init.d目录下创建自启动配置, 运行配置在/etc/lighttpd/lighttpd.conf, 默认网站路径为/var/www/html/

# 开启lighttpd服务 service lighttpd start # 已经可以看到lighttpd服务 service --status-all 

访问http://ip:80, 页面正常, 替换页面/var/www/html/index.lighttpd.html

 
  
    
     
      
       
       Services List 
       

Services List

打开godot官网: https://github.com/godotengine/godot/releases

下载版本: stable_linux.arm64

虽然不能用图形界面, 但可以headless模式运行, 可以在code-server中配合插件开发调试 (需要添加headless参数), 或者进行CI/DI集成

运行之后提示一个错误:

libfontconfig.so.1: cannot open shared object file: No such file or directory

来搜索解决一下

apt install libfontconfig1 

安装后再运行, 不再提示错误

但是提示root用户风险, 可以在.bashrc中添加export GODOT_SILENCE_ROOT_WARNING=1, 之后执行source .bashrc屏蔽掉

语言服务器LSP连接: 代码提示, 自动补全, 文档提示

在code-server中安装godot-tools, godot-files两个扩展

确保godot在path目录中

在godot-tools配置中打开 lsp-headless (launch the LSP as a headless child process)

上述配置若正确无误, 则LSP是可以直接使用的, 不需要手动启动进程

Godot项目调试

打开调试侧边栏, 点击创建一个launch.json, 配置选择”GDScript Godot Debug”, 会生成一个默认配置, 默认生成的调试配置如下

{

"name": "GDScript: Launch Project", "type": "godot", "request": "launch", "project": "${workspaceFolder}", "debug_collisions": false, "debug_paths": false, "debug_navigation": false, "additional_options": "" 

}

默认配置直接打断点调试是跑不起来的, 必须在additional_options配置中加上 –headless*参数

直接F5试试, 很棒, 可以正常调试运行, 变量, 堆栈都可以正常显示, 可以拿手机摸鱼开发Godot游戏了!


你们还想看哪些折腾教程呢, 打在评论区吧

  • proot下的ARM Linux自启动与服务管理方案
  • chroot/proot环境部署a代理
  • chroot/proot环境部署Claude Code/Codex
  • chroot/proot环境部署OpenClaw/NanoClaw

小讯
上一篇 2026-04-12 08:43
下一篇 2026-04-12 08:41

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/257164.html