o-6ren">
gpt4 book ai didi

bash - 如何在不产生两个进程的情况下以不同的用户身份运行 nohup?

转载 作者:行者123 更新时间:2023-11-29 08:54:11 27 4
gpt4 key购买 nike

我正在尝试 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com