非用登錄執行 nohup Java -jar 問題


 

一、java 啟動問題

非登入執行 nohup Java -jar service.jar & 問題;

准確是遠程用戶登錄 nohup java -jar service.jar & 進程,遠程動作結束 ,進程停止。

環境變量問題 ,目前解決是 必須加上 絕對路徑執行.

# which java

二、問題?

遠程執行對 nohup java -jar 指令退出失效。

遠程無法獲取 $PATH $JAVA_HOME 信息;

用戶變量和系統變量中都存在某一個環境變量

三、環境變量 ?

export 加入全局?

最主要應該還是Java環境變量 添加到了/etc/bashrc文件里,source /etc/bashrc

非 root 登入shell 加載配置文件 1、/etc/bashrc 2、~/.bashrc

修改/etc/bashrc 文件 (針對所有用戶有效):vim/etc/bashrc

在最末尾加入source /etc/bashrc或者. /etc/bashrc

 

四、常見的環境變量:
存放環境變量的文件
1、/etc/profile
該文件的作用是當用戶登錄時獲取系統的環境變量,只獲取一次。
2、/etc/bashrc
當執行完/etc/profile文件后,用戶想打開bash Shell就會讀取該文件。如果想每次打開bash Shell后都執行某些操作,可以在該文件中設置。
3、~/.bash_profile
每個用戶都可使用該文件輸入專用於自己使用的shell信息。當用戶登錄時,該文件僅僅執行一次,默認情況下,它設置一些環境變量,執行用戶的.bashrc文件。
單個用戶此文件的修改只會影響到他以后的每一次登陸系統。因此,可以在這里設置單個用戶的特殊的環境變量或者特殊的操作,那么它在每次登陸的時候都會去獲取這些新的環境變量或者做某些特殊的操作,但是僅僅在登陸時。
4、~/.bashrc
該文件包含專用於單個人的bash shell的bash信息,當登錄時以及每次打開一個新的shell時,該該文件被讀取。
單個用戶此文件的修改會影響到他以后的每一次登陸系統和每一次新開一個bash。因此,可以在這里設置單個用戶的特殊的環境變量或者特殊的操作,那么每次它新登陸系統或者新開一個bash,都會去獲取相應的特殊的環境變量和特殊操作。
5、 ~/.bash_logout
當每次退出系統(退出bash shell)時,執行該文件。
注:放在家目錄下的環境變量配置文件,只會對當前用戶起作用;在/etc下的環境變量所有的用戶都起作用;

五、nohup ?

nohup ( no hang up)

命令運行由 Command參數和任何相關的 Arg參數指定的命令,忽略所有掛斷(SIGHUP)信號。在注銷后使用 nohup 命令運行后台中的程序。要運行后台中的 nohup 命令,添加 & ( 表示“and”的符號)到命令的尾部。

示例:

nohup command > myout.file 2>&1 &
在上面的例子中,0 – stdin (standard input),1 – stdout (standard output),2 – stderr (standard error) ;
2>&1是將標准錯誤(2)重定向到標准輸出(&1),標准輸出(&1)再被重定向輸入到myout.file文件中。
使用 jobs 查看任務。
使用 fg %n 關閉。

 


 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM