执行 nohup 命令时, sudo -u 到底应该放在 nohup...&的外面还是里面?

2019-12-13 11:03:17 +08:00
 kisshere

之前的问题: https://www.v2ex.com/t/627475 我测试了下,以下两个命令:

nohup sudo -u www php backup.php &

sudo -u www nohup php backup.php &

所创建的文件和文件夹其用户都是 www 的,那到底哪个才是正确的

4261 次点击
所在节点    程序员
4 条回复
dghgyxu
2019-12-13 12:02:08 +08:00
我是这么理解的:sudo 放 nohup 后面的话,是用当前用户执行 nohup,www 用户执行 php,nohup.out 是当前用户创建的; sudo 放 nohup 前面的话,nohup 和 php 都是 www 用户执行的,nohup.out 是 www 用户创建的。无所谓正确与否,怎么使用取决于实际需求。
CivAx
2019-12-13 14:27:27 +08:00
没什么区别

所有的子进程都继承自父进程,继承权意味着所有的子进程都会得益于 `nohup` 命令免疫所有的 `SIGNUP` 状态。

这里的子进程执行 `php backup.php` 命令,父进程执行 `nohup sudo -u www` 或 `sudo -u www nohup`,无论如何你的父进程都由 root 执行,子进程都由 www 执行。
gitopen
2019-12-13 14:30:46 +08:00
我用 screen 让进程后台
realpg
2019-12-15 16:28:56 +08:00
9102 年了 还是 screen 吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/628653

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX