🚀 Java 启动神咒:如何让程序“永生”且“听话”

在 Linux 运维界,如果你只会写 java -jar,那你只是个“临时工”。真正的“高级特工”都用下面这串咒语:

nohup java -jar mybatis-plus.jar > all.log 2>&1 &

1. nohup:长生不老药 💊

  • 大白话“别管我,我不下班!”
  • 内幕:默认情况下,你关掉 SSH 窗口,系统会给程序发个“下班信号”把它掐死。加了 nohup(No Hang Up),程序就练成了金钟罩,你就算把电脑砸了,它在服务器里也照样跑。

2. > all.log:正能量账本 📝

  • 大白话“好听的话记这里。”
  • 内幕:把程序跑出来的 INFODEBUG 等正常日志全塞进 all.log 桶里,别在大黑屏幕上乱喷。

3. 2>&1:坏消息合并器 🖇️

  • 大白话“脏水也往同一个桶里倒。”
  • 内幕
    • 1正常日志2报错信息(比如数据库连不上)。
    • 2>&1 意思是:把报错(2)强行插进正常日志(1)的队伍里。
    • 一针见血:如果不写这个,一旦程序崩了,你的 all.log 是空的,你上哪儿哭去?

4. &:隐身潜行 🥷

  • 大白话“我去后台干活了,别挡你的路。”
  • 内幕:让程序进入后台模式。按下回车,命令行光标立刻还给你。你可以继续去部署 Hexo、装 Clash,而 Java 程序在后面默默地烧 CPU。

💡 总结成一句话

“给我在后台死命干活(&),就算我断网了也不准停(nohup),不管好事坏事全给我记在一个账本上(2>&1),懂了没?”

🛠️ 运维小贴士

  1. 查岗ps -ef | grep java (看看这小子偷懒没)。
  2. 盯梢tail -f all.log (实时看他在干嘛)。
  3. 劝退kill -9 <PID> (实在是想让他下班了,直接拔网线)。