我在 RHEL 6.x 中创建了一个 init.d 脚本来将进程作为服务进行控制。在脚本中,我使用 /sbin/runuser 以非特权用户身份启动进程。脚本的这一部分运行良好。
脚本以 sudo service scriptname 操作的方式运行
例如,sudo service httpd restart
此外,我想注销运行上述命令的用户。在普通的 bash 脚本中,我使用了各种 $USER、$SUDO_USER 和 $logname 来获取运行脚本的用户。当使用“服务”可执行文件运行脚本时,同样的方法似乎不起作用。
我错过了什么?如何在服务命令运行的脚本中获取运行服务命令的用户的名称?
谢谢。
答案1
service
在尽可能可预测的环境中运行 System V init 脚本,删除大多数环境变量并将当前工作目录设置为/。语言,学期
传递给初始化脚本的唯一环境变量。
我不太明白您想要实现的目标,但您可能想尝试whoami
或logname
命令。