我正在尝试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'"
原文地址:https://www.jb51.cc/bash/384378.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。