linux之后台运行命令

第一章 linux之帮助命令
第二章 linux命令行快捷键
第三章 linux之防火墙
第四章 linux之服务开机自启
第五章 linux之关机与重启
第六章 linux之环境变量
第七章 linux之目录操作命令
第八章 linux之目录结构
第九章 linux之使用ssh连接被拒
第十章 linux之搜索命令
第十一章 linux之统计命令
第十二章 linux之网络命令
第十三章 linux之文件操作命令
第十四章 linux之文件系统命令
第十五章 linux之压缩解压缩
第十六章 linux之用户管理
第十七章 linux之权限管理命令
第十八章 linux之scp命令文件传输
第十九章 linux之vim编辑器
第二十章 linux之linux下载软件包
第二十一章 linux之定时任务
第二十二章 linux之查看端口占用
第二十三章 linux之后台运行命令


文章目录


后台运行命令

很多时候需要将命令放在后台执行,那么如何让命令在后台运行呢,只需要在命令后加上&即可

如:

java -jar test.jar &

查看后台进程

#-l 表示显示工作的PID
jobs [-l]

但是后台运行的命令在关闭终端之后就会终止,如何解决这个问题呢?

  • 使用定时任务,让系统执行该命令,这样该命令就与终端无关了,不依赖所登录的终端

  • 使用nohup命令,使得后台命令在离开操作终端也可以正确的在后台执行

    nohup [命令] &
    
    

例:

nohup ./Test 1>/dev/null 2>log &

参考文献

Linux系统中后台运行JAR文件是一个常见的需求,尤其是在部署Java应用程序的时候。下面是几种让JAR包在后台持续运行的方式: ### 使用 nohup 命令 `nohup`(No Hang up)可以忽略挂起信号(SIGHUP),即当用户退出终端之后程序仍然能够继续运行下去。 - 执行命令: ```bash $ nohup java -jar your-application.jar & ``` 这条命令会启动应用并将它放到后台运行;所有的输出将会被记录到当前目录下的 `nohup.out` 文件中除非另有指定输出位置。 如果你不想生成nohup.out日志文件,则可以在命令结尾添加 > /dev/null 2>&1 来将标准输出和错误重定向至空设备。 ```bash $ nohup java -jar your-application.jar >/dev/null 2>&1 & ``` ### 使用 screen 工具 Screen工具允许创建一个持久性的虚拟控制台,在其中你可以安全地关闭物理连接而不会影响正在运行的任务。 首先安装screen(如果尚未安装的话) 对于Debian/Ubuntu发行版来说可以用下面的指令来进行安装: ```bash sudo apt-get install screen ``` 然后按照以下步骤操作即可: 1. 创建一个新的会话并命名:`screen -S myappsession` 2. 启动你的Java服务:`java -jar your-application.jar` 3. 按下 Ctrl+A 然后再按 D 键就可以从这个screen session脱离出来了。此时回到shell界面,并且那个screen窗口还在后台保持活动状态。 想要查看所有已开启sessions列表以及重新连入刚才断开的那个screen,您可以分别用这两个命令:`screen -ls`,`screen -r myappsession`. ### 使用 Systemd (适用于现代 Linux 发行版本) 通过编写systemctl service单元配置文件使得服务开机自启并且稳定可靠。 创建名为your-app.service的服务定义文件放在/etc/systemd/system路径下: 内容示例如下: ```ini [Unit] Description=My Java Application Service [Service] ExecStart=/usr/bin/java -jar /path/to/your-application.jar SuccessExitStatus=143 Restart=on-failure User=nobody # 运行此service的账户名可根据需要更改 WorkingDirectory=/opt/my-java-app/ [Install] WantedBy=multi-user.target ``` 保存修改后的配置文后执行如下命令加载新设置并启用该服务随机器一起启动. ```bash $ sudo systemctl daemon-reload $ sudo systemctl enable your-app.service $ sudo systemctl start your-app.service ``` 以上就是三种常用的方法让你的应用能够在Linux环境下作为守护进程长期稳定工作了!
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

拾光师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值