linux 怎样实现用户登录,通过shell自动启动其他进程

杨六 2012-08-21 09:20:25
问题描述:linux启动后,进入login界面,输入用户名,密码,就会进入shell(/bin/sh),现在需要输入用户名密码后,直接进入命令行模式(类似于在shell下面执行cli进程),在login.c中类似于写死代码,执行/usr/bin/cli,而不再执行/bin/sh, 现发现cli部分命令行无法识别,目前不太了解什么原因,据同事说可能与环境变量有关系。

关于以上问题有两种解决办法:假如是环境变量引起的
1) 明确是什么环境变量引起的,在cli进程中,注册环境变量,但比较麻烦,也不确定哪些环境变量是否会影响其他进程

2)输入用户名密码后,进入shell,然后再自动在shell下启动cli,但不知道有怎样的方式可以实现,让用户的体验就是直接启动cli,但又不影响cli的功能


目前测试结果就是从shell下执行cli就没有问题,登录直接启动cli就有部分命令无法识别的情况,请高手指教一二,谢谢!

...全文
311 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
杨六 2012-08-22
  • 打赏
  • 举报
回复
问题已经解决,不是环境变量的问题,是代码本身的问题,谢谢!
杨六 2012-08-21
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
嗯,我的意思是usermod -s /usr/bin/cli USER
[/Quote]
这个实现可以吗?赞同于先执行shell,再在shell下面执行cli吗?还是等同login.c中执行run_shell("/usr/bin/cli", 0 , 0),如果是这样还是无法满足我的需要吧

目前的问题就是在login.c中直接启动cli进程有问题,在shell下执行cli就没有问题。
Vegertar 2012-08-21
  • 打赏
  • 举报
回复
嗯,我的意思是usermod -s /usr/bin/cli USER
杨六 2012-08-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
在login.c中写死?将/usr/bin/cli配置成用户shell不行吗?
[/Quote]
我现在需要的就是shell不对用户可见,进入shell自动执行cli,相当于cli就是UI界面,不再提供shell模式
Vegertar 2012-08-21
  • 打赏
  • 举报
回复
在login.c中写死?将/usr/bin/cli配置成用户shell不行吗?

23,120

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧