在Ubuntu系统中实现code-server 24/7持续运行方案
2025-04-29 22:30:53作者:毕习沙Eudora
背景介绍
code-server作为一款优秀的远程开发工具,允许用户通过浏览器访问VS Code环境。许多开发者在Ubuntu系统上部署code-server时,常常遇到一个典型问题:当关闭终端窗口后,服务就会自动终止。这种情况对于需要长期稳定运行的开发环境来说显然是不可接受的。
问题本质分析
在Linux系统中,当一个进程由终端启动时,默认情况下它会与该终端会话绑定。当终端关闭时,系统会发送SIGHUP信号给所有相关进程,导致这些进程被终止。这是Linux系统的默认行为,并非code-server特有的问题。
解决方案
1. 使用tmux工具
tmux是一个终端复用工具,可以创建持久化的会话,即使关闭终端窗口也不会影响其中运行的进程。
具体操作步骤:
- 首先安装tmux:
sudo apt install tmux - 创建新会话:
tmux new -s code-server - 在新会话中启动code-server:
code-server - 按下
Ctrl+B,然后按D键分离会话 - 此时可以安全关闭终端,code-server会继续运行
如需重新连接会话查看状态:
tmux attach -t code-server
2. 使用nohup命令
nohup是一个简单的解决方案,可以忽略SIGHUP信号。
使用方法:
nohup code-server &
此命令会将输出重定向到nohup.out文件,服务会在后台持续运行。
3. 创建系统服务
对于生产环境,建议将code-server注册为系统服务,实现开机自启和自动管理。
创建服务文件:
sudo nano /etc/systemd/system/code-server.service
添加以下内容:
[Unit]
Description=code-server
After=network.target
[Service]
User=your_username
ExecStart=/usr/bin/code-server
Restart=always
[Install]
WantedBy=multi-user.target
然后执行:
sudo systemctl daemon-reload
sudo systemctl enable code-server
sudo systemctl start code-server
方案对比
| 方案 | 复杂度 | 适合场景 | 稳定性 | 管理便利性 |
|---|---|---|---|---|
| tmux | 中等 | 临时使用 | 较好 | 一般 |
| nohup | 简单 | 快速测试 | 一般 | 较差 |
| 系统服务 | 较高 | 生产环境 | 优秀 | 优秀 |
最佳实践建议
对于个人开发者,建议从tmux方案开始尝试,它提供了良好的平衡性。对于团队或生产环境,强烈推荐使用系统服务方案,它能提供最稳定的运行环境和便捷的管理方式。
无论选择哪种方案,都建议定期检查日志,确保服务运行正常。对于系统服务方案,可以使用journalctl -u code-server -f命令实时查看日志。
登录后查看全文
热门项目推荐
GLM-5智谱 AI 正式发布 GLM-5,旨在应对复杂系统工程和长时域智能体任务。Jinja00
LongCat-AudioDiT-1BLongCat-AudioDiT 是一款基于扩散模型的文本转语音(TTS)模型,代表了当前该领域的最高水平(SOTA),它直接在波形潜空间中进行操作。00
jiuwenclawJiuwenClaw 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。Python0245- QQwen3.5-397B-A17BQwen3.5 实现了重大飞跃,整合了多模态学习、架构效率、强化学习规模以及全球可访问性等方面的突破性进展,旨在为开发者和企业赋予前所未有的能力与效率。Jinja00
AtomGit城市坐标计划AtomGit 城市坐标计划开启!让开源有坐标,让城市有星火。致力于与城市合伙人共同构建并长期运营一个健康、活跃的本地开发者生态。01
HivisionIDPhotos⚡️HivisionIDPhotos: a lightweight and efficient AI ID photos tools. 一个轻量级的AI证件照制作算法。Python05
项目优选
收起
deepin linux kernel
C
27
13
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
641
4.19 K
Ascend Extension for PyTorch
Python
478
579
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
934
841
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
386
272
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
1.51 K
866
暂无简介
Dart
884
211
仓颉编程语言运行时与标准库。
Cangjie
161
922
昇腾LLM分布式训练框架
Python
139
162
🔥LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解
Java
69
21