作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
o-6ren">
我正在尝试 nohup 一个命令并以不同的用户身份运行它,但每次我这样做都会产生两个进程。
例如:
$ nohup su -s /bin/bash nobody -c "my_command" > outfile.txt &
这肯定会以 nobody 身份运行 my_command,但是有一个我不想显示的额外进程:
$ ps -Af
.
.
.
root ... su -s /bin/bash nobody my_command
nobody ... my_command
如果我杀死根进程,nobody 进程仍然存在...但是有没有办法完全不运行根进程?因为获取 my_command 的 id 并杀死它有点复杂。
最佳答案
这可以通过以下方式实现:
su nobody -c "nohup my_command >/dev/null 2>&1 &"
并在 pidFile 中写入“my_command”的 pid:
pidFile=/var/run/myAppName.pid
touch $pidFile
chown nobody:nobody $pidFile
su nobody -c "nohup my_command >/dev/null 2>&1 & echo \$! > '$pidFile'"
关于bash - 如何在不产生两个进程的情况下以不同的用户身份运行 nohup?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11727604/
我是一名优秀的程序员,十分优秀!