screen/tmux,实现session停掉,服务不挂

本文详细介绍如何使用screen/tmux实现session停掉但服务不挂的方法。包括安装、创建、detach、返回、查看列表、杀死session及检查状态等操作。适合希望提高多任务处理效率的开发者阅读。

screen/tmux,实现session停掉,服务不挂。

  1. 安装

    sudo apt install screen

     

  2. 创建一个screen

    screen -S myName

    在screen中操作。

  3. detach to main Dos

    ctrl+a +d

     

  4. return to screen-dos

    screen -r myName

     

  5. 查看screen列表

    screen -ls
    
    screen -list 

     

  6. 杀screen

    kill -9 pid
    # 或者直接在screen窗口内执行 exit 就可以退出当前进程,也不需要再找进程号再wipe了

     

  7. check screen status is dead?

    screen -ls

     

  8. remove dead session

    screen -wipe

     

### 如何通过 `java -jar` 命令运行后台服务 #### 后台运行的基础概念 当使用 `java -jar` 命令启动一个 Java 应用程序时,默认情况下该应用程序会在前台运行。这意味着如果你关闭终端或者断开 SSH 连接,程序可能会被终止[^1]。 为了防止这种情况发生并让程序在后台持续运行,可以采用以下几种方法: --- #### 方法一:使用 `&` 符号将程序放入后台 可以通过在命令末尾加上 `&` 来实现简单的后台运行功能。这种方式可以让程序继续运行而阻塞当前的 Shell 终端。 ```bash java -jar your-application.jar & ``` 这种方法虽然简单有效,但如果终端会话结束(比如用户注销或网络中断),程序仍然可能被杀死[^4]。 --- #### 方法二:使用 `nohup` 防止起 `nohup` 是一种更可靠的解决方案,它可以忽略 SIGHUP 信号,从而即使终端关闭也能保持程序运行。 ```bash nohup java -jar your-application.jar > output.log 2>&1 & ``` 上述命令中: - `> output.log` 将标准输出重定向到文件 `output.log` 中; - `2>&1` 表示错误日志也写入同一文件; - 最后的 `&` 则表示将任务放到后台执行[^3]。 这样设置后,无论何时关闭终端,Java 程序都会继续正常工作。 --- #### 方法三:利用 `screen` 或 `tmux` 创建持久化会话 对于需要长期维护的服务来说,推荐使用工具如 `screen` 或者 `tmux` 提供更加灵活的方式管理长时间运行的任务。 以 `screen` 为例: 1. 开始一个新的 screen session: ```bash screen -S mysession ``` 2. 执行 jar 文件: ```bash java -jar your-application.jar ``` 3. 按下组合键 Ctrl+A, D 脱离当前屏幕但仍保留其内部活动状态。 之后可通过命令重新连接至之前创建好的 session 查看进程状况。 此法特别适合那些希望随时监控服务器上正在做什么事情的人群。 --- #### 解决常见问题 ##### 问题 1: 当前 ssh 窗口被锁定无法输入新指令怎么办? 答:如果只是想把现有作业移到背景去而想新开另一个 shell 实例的话,在发出 ctrl+z暂停应用后再键入 bg 即可将其转为后台模式;当然也可以一开始就加 & 参数来规避这个问题。 ##### 问题 2: 如果远程登录结束后发现原来跑着的应用突然停掉了怎么回事呢? 答:这是因为默认行为下的子进程依赖于父进程存活的缘故所致——一旦前者消失后者也就跟着消亡了。所以建议按照前述介绍的方法之一采取措施加以防范。 ##### 问题 3: 日志记录怎么处理比较好些啊? 答:考虑到实际运维需求,最好能够妥善安排好各个阶段产生的消息存储位置以便后续排查故障之需。例如借助上面提到过的 nohup 方案就能轻松达成目标。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值