非用登录执行 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 关闭。


原文地址:https://www.cnblogs.com/sharesdk/p/12771539.html