linux /etc/profile 假如不登陆,环境变量是怎么样的

/etc/profile 查了很多资料,都说这个是在系统启动shell之后生效的。

那么我关机了,然后按下开机键,这个时候linux启动成功了吧。假如我启动linux之后就会启动Nginx,然后访问80端口会读取环境变量 PARAMS="hello",我不登陆linux,我访问Nginx的80端口,此时这个环境变量会生效吗?

我猜测不会,然后我还觉得我打开一个shell之后,再请求这个环境变量也是没有的。

不知道理解的对不对,求大佬指教

阅读 3.3k
2 个回答

你理解的没错。/etc/profile是shell加载的,shell启动的进程继承父进程的环境,才会读到shell加载的环境变量。而配置成服务如systemd或upstart之类的方式启动的进程继承自init程序,它不会加载profile。想让这样的服务带环境变量启动,只能在服务配置或者服务启动脚本里改。

新手上路,请多包涵

你说的那些环境变量都需要开启shell才行,开机启动的程序是最高级别的程序,其它所有的shell和子shell都是它的子进程,他们的环境变量应该在/etc/systemd/system.conf中设置,分享给你个链接https://blog.51cto.com/u_1403...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题