背景:
      因最近试安装Linux下的jira,有一个中文插件安装后,一旦设置开机启动后,它是英文,而在终端再重新启动一次后呢,似乎插件生效,它又恢复为正常中文界面,我首先想这这涉及到一个环境变量的问题,因为在我设置开机启动的服务时用service jira start出现找不到一些变量,如:获取不到java的home目录,提示找不到,为此,我加上了java的环境变量开机启动Ok了,但是英文,我对英文认识少,但还是想用中文,否则插件就等于白安了。

为此,需要弄清这两者的环境变量的区别在哪儿,如何查看一个运行程序的环境变量如下两种方法:

方法一:通过获取进程编号得到环境变量:
root@192.168.98.128:~# ps aux|grep jira
root         pts/
得到PID为:
查看该进程的环境变量命令如下:
ps eww -p    //得到一大串的环境变量

方法二,查看proc目录下的环境信息并分离出环境变量
tr /environ

经diff区分发现后得出有两个点不同:
()TERM=linux  TERM=xterm  //这个可能是我在用SecureCRT时设置的是xterm设置时把这个变量带入进去了(在:会话选项->终端->仿真->终端:xterm)
()LANG=en_US.UTF-  LANG=zh_CN.UTF-  //这儿是一个终端编码的问题:en_US 和 zh_CN还是有区别的,这儿有可能就是问题所在。

现在这样处理:
export LANG=zh_CN.UTF-

把这一行放在: /etc/init.d/jira   这个启动的命令前一行即可。
export LANG=zh_CN.UTF-
nohup /usr/local/jira/bin/shutdown.sh  > /dev/>& &                                        |~
 usleep                                                                                     |~
 nohup /usr/local/jira/bin/startup.sh   > /dev/>& &  

经过上述修改后,果然成功,大功告成,猜想正确,得证。
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
附录疑问:nohup执行的shell脚本,刚设置的全局变量不能传递到脚本中使用吗?
export LOGFILE #这里要导出为环境变量才能被123.sh进程使用
nohup .sh &
================================================
当然也可以不必export,只要source 脚本就行了,全局变量就被设置到当前shell进程里了,如果希望它成为环境变量以便被之后的shell子进程使用就要export了。

我在思考:为何这个jira启动时没有去读这个文件的值呢?奇怪,难道是自己的jira版本太低了么。
vi /etc/sysconfig/i18n

通过开机启动和终端运行时的环境变量的不同,进而匹配成相同,这个问题及得到了解决。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
下面附加:开机启动后的环境变量情况和终端启动的环境变量区别产生的原因:
首先清楚在linux里面无论是在命令行输入还是系统设置等都是属于shell。(开机启动设置在(/etc/init.d/rcS中)、配置系统环境变量的shell位于/etc/profile、配置用户级环境变量的shell为~/.bashrc—每次启动终端都执行;或~/.bash_profile—会话开始时执行)。把库的路径添加到环境变量LD_LIB_PATH中即可找到。
备忘:
、 在命令行编辑时可用emacs的命令进行编辑,如ctrl-b表示退后一步;ctrl-a表示光标移到最前等。
、 可以同时输入几个命令顺序执行:command1 ; command2 或 command1 && command2(当command1执行成功时再执行command2)。
、 后台运行和程序debug输出重定向: 在终端运行一个程序后可以用ctrl-z挂起然后输入bg命令使其后台运行(当然也可直接在后面加&)。Command & > /dev/null &将不会再终端输出调试信息。
、 输出重定向: ()多个命令重定向,| 如 | grep text | less等,()重定向至文件 command > file(把file文件内容换成command的输出) 或 command >> file(直接把command的输出加在file文件后面)。
、 改变提示符: 通过设置PS1=”something。
、 用alias newcommand=”oldcommand”设置命令的别名。
1.2. 6410开机启动和环境变量设置
、 开机启动程序加在shell文件/etc/init.d/rcS文件中
、 环境变量添加在/etc/profile文件(PATH和LD_LIBRARY_PATH) 

Linux下查看进程(程序)启动时的环境变量的更多相关文章

  1. linux下查看进程占用端口和端口占用进程命令

    Linux下查看进程占用端口: 查看程序对应进程号:ps –ef|grep 进程名 REDHAT :查看进程号所占用的端口号:netstat –nltp|grep 进程号 ubuntu:查看进程占用端 ...

  2. linux下查看进程路径

    在linux下查看进程大家都会想到用 ps -ef|grep XXX可是看到的不是全路径,怎么看全路径呢?每个进程启动之后在 /proc下面有一个于pid对应的路径例如:ps -ef|grep pyt ...

  3. linux 下查看进程占用端口和端口号占用进程命令

    linux 下查看进程占用端口:(1)查看程序对应的进程号: ps -ef | grep 进程名字 (2)查看进程号所占用的端口号: netstat -nltp | grep  进程号 ubuntu ...

  4. linux下查看进程的状态 /proc/[pid]/status

    查看进程的状态: 1.查看进程的pid,以java为例:ps -ef | grep java 2.查看进程状态:cat /proc/[pid]/status 关键字: linux [root@loca ...

  5. Django项目部署在Linux下以进程方式启动

    Django项目部署在Linux下以进程方式启动 这是一篇关于如何在linux下,以后台进程的方式运行服务,命令改改基本上就通用了. 开发完Django项目后,需要把项目部署到linux环境下.当然, ...

  6. Linux下查看进程的命令输出的内容解释

    Linux下查看进程的命令输出的内容解释 ps (process status) ps -e 或者ps -A (-e和-A完全一样) PID           TTY         TIME   ...

  7. Linux如何查看进程是否启动,查看端口占用

    Linux系统中经常需要查看某个进程是否已经启动,启动位置在哪里,某个端口是否被占用,被哪个进程占用等,这些都可以通过命令来完成,本文讲述如何查看进程是否启动,查看端口占用 1.通过ps -ef | ...

  8. Linux下查看进程打开的文件句柄数和如何修改

    修改文件句柄数在Linux下,我们使用ulimit -n 命令可以看到单个进程能够打开的最大文件句柄数量(socket连接也算在里面).系统默认值1024. 对于一般的应用来说(象Apache.系统进 ...

  9. Linux下查看进程和线程

    在linux中查看线程数的三种方法 1.top -H 手册中说:-H : Threads toggle 加上这个选项启动top,top一行显示一个线程.否则,它一行显示一个进程. 2.ps xH 手册 ...

随机推荐

  1. 你好,C++(12)怎样管理多个类型同样性质同样的数据?3.6 数组

    3.6  数组 学过前面的基本数据类型之后,我们如今能够定义单个变量来表示单个的数据.比如,我们能够用int类型定义变量来表示公交车的216路:能够用float类型定义变量来表示西红柿3.5元一斤. ...

  2. C#自定义事件:属性改变引发事件示例

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Cons ...

  3. android基础篇学习心得

    android技术中,线程.进程.JNI.IPC和各个小框架结构是基本功.在跟随高焕堂老师的android程序猿到架构师之路系列视频中 学习完基础篇之后,颇有些心得,记录下来. android开发就是 ...

  4. ajax提交富文本,内容被截断,解决方法及思路

    问题描述: 使用百度的UEditor富文本插件用于前端富文本编辑,后端使用jsp,提交普通文本没有问题,后来发现在提交某些指定文本时,数据查回的数据出现不完整现象:第一件事就是想到“垃圾编辑器”

  5. MySQL中TIMESTAMP和DATETIME区别

    1.两者的存储方式不一样 TIMESTAMP:把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储.查询时,将其又转化为客户端当前时区进行返回. DATETIME:不做任何改变,基本上是原 ...

  6. dedecms 使noflag参数及其过滤多个属性的修改方法

    noflag='h' 是代表不包含头条属性的意思,其中flag就是属性, 自定义属性值:头条[h]推荐[c]图片[p]幻灯[f]滚动[s]跳转[j]图文[a]加粗[b]. noflag过滤多个属性的修 ...

  7. Android之使用json进行网络数据交换

    JSON作为一种轻量级的数据交换格式,凭借其易于阅读和编写.易于解析.传输速度快等优点流行了起来.最近正好在学习Android端从服务端端取数据,Json便派上了用场.好,下面开始切入主题. 1.准备 ...

  8. iPhone真机测试Crash信息分析

    一.获取Crash Log的方式 在iOS开发过程,当应用已经打包,iPhone设备通过ipa的包安装应用后,在使用过程发现crash,那么如何获取crash日志呢,现提供如下四种获取crash日志的 ...

  9. Swift - 15 - 导入Foundation使用更多字符串功能

    //: Playground - noun: a place where people can play import Foundation var str = "Hello, playgr ...

  10. Knockoutjs官网翻译系列(一)

    最近马上要开始一个新项目的研发,作为第一次mvvm应用的尝试,我决定使用knockoutjs框架.作为学习的开始就从官网的Document翻译开始吧,这样会增加印象并加入自己的思考,说是翻译也并不是纯 ...