V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
kisshere
V2EX  ›  程序员

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

  •  
  •   kisshere · 2019-12-13 11:03:17 +08:00 · 4419 次点击
    这是一个创建于 1811 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    nohup sudo -u www php backup.php &
    

    sudo -u www nohup php backup.php &
    

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

    4 条回复    2019-12-15 16:28:56 +08:00
    dghgyxu
        1
    dghgyxu  
       2019-12-13 12:02:08 +08:00 via Android
    我是这么理解的:sudo 放 nohup 后面的话,是用当前用户执行 nohup,www 用户执行 php,nohup.out 是当前用户创建的; sudo 放 nohup 前面的话,nohup 和 php 都是 www 用户执行的,nohup.out 是 www 用户创建的。无所谓正确与否,怎么使用取决于实际需求。
    CivAx
        2
    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
        3
    gitopen  
       2019-12-13 14:30:46 +08:00
    我用 screen 让进程后台
    realpg
        4
    realpg  
       2019-12-15 16:28:56 +08:00
    9102 年了 还是 screen 吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1084 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 19:22 · PVG 03:22 · LAX 11:22 · JFK 14:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.