Linux背景執行
以前我在Linux要背景執行程式,在最後面加上 「&」即可,後來發現這樣好像不正統,因此改用nohub以shell方式執行。
啟動(start.sh)
#!/bin/bash
nohup /usr/lib/jvm/jdk-17-oracle-x64/bin/java -jar api.jar &> /dev/null &
結束(stop.sh)
#!/bin/bash
ps -ef | grep "api.jar" | grep -v grep | sed 's/ [ ]*/:/g'|cut -d: -f2| kill -9 `cat`
nohub解釋如下(出處)
說明
nohup 指令會執行 Command 參數及任何相關 Arg 參數所指定的指令,忽略所有掛斷信號 (SIGHUP) 或修改使用 -p 選項指定的處理程序以忽略所有 SIGHUP 信號。 SIGHUP 是在處理程序的控制端關閉時傳送給處理程序的信號。
在登出之後,也可以使用 nohup 指令在背景中執行程式。 To run a nohup command in the background, add an & (ampersand) to the end of the command.
reptyr 可以把当前tty执行的进程挪到 tmux 里,特别适合命令执行后迟迟不结束,急着下班的人 https://github.com/nelhage/reptyr