bash – 如何在不产生两个进程的情况下以不同的用户身份运行nohu
发布时间:2020-12-16 01:20:21 所属栏目:安全 来源:网络整理
导读:我正在尝试nohup一个命令并以另一个用户身份运行它,但每次我这样做时都会产生两个进程. 例如: $nohup su -s /bin/bash nobody -c "my_command" outfile.txt 这肯定会将my_command作为nobody运行,但是有一个我不想显示的额外进程: $ps -Af...root ... su -s
我正在尝试nohup一个命令并以另一个用户身份运行它,但每次我这样做时都会产生两个进程.
例如: $nohup su -s /bin/bash nobody -c "my_command" > outfile.txt & 这肯定会将my_command作为nobody运行,但是有一个我不想显示的额外进程: $ps -Af . . . root ... su -s /bin/bash nobody my_command nobody ... my_command 如果我杀死root进程,那么nobody进程仍然存在……但是有没有办法根本不运行root进程?因为获取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'" (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读