1. 程式人生 > >關於linux啟動springboot專案時候的命令

關於linux啟動springboot專案時候的命令

&的意思是在後臺執行, 什麼意思呢?  意思是說, 當你在執行 ./a.out & 的時候, 即使你用ctrl C,  那麼a.out照樣執行(因為對SIGINT訊號免疫)。 但是要注意, 如果你直接關掉shell後, 那麼, a.out程序同樣消失。 可見, &的後臺並不硬(因為對SIGHUP訊號不免疫)。

  nohup的意思是忽略SIGHUP訊號, 所以當執行nohup ./a.out的時候, 關閉shell, 那麼a.out程序還是存在的(對SIGHUP訊號免疫)。 但是, 要注意, 如果你直接在shell中用Ctrl C, 那麼, a.out程序也是會消失的(因為對SIGINT訊號不免疫)


  所以, &和nohup沒有半毛錢的關係, 要讓程序真正不受shell中Ctrl C和shell關閉的影響, 那該怎麼辦呢? 那就用nohua ./a.out &吧, 兩全其美。

總結:如果你不關閉shell的話,那麼結尾加上&就OK了,程式會一直執行(即使ctrl+c),但是當你關閉shell的話,程式會停掉,所以你要加上nohup。所以如果既想在shell裡面ctrl+c 不讓程式停掉也想在關閉shell後不讓程式停掉,就兩個都加上。