如何以不同用户身份运行 nohup 而不生成两个进程?

2023-11-22

我试图 nohup 一个命令并以不同的用户身份运行它,但每次我这样做都会生成两个进程。

例如:

$ nohup su -s /bin/bash nobody -c "my_command" > outfile.txt &

这肯定以无人身份运行 my_command,但有一个我不想显示的额外进程:

$ 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 &"

并将“my_command”的 pid 写入 pidFile:

pidFile=/var/run/myAppName.pid
touch $pidFile
chown nobody:nobody $pidFile
su nobody -c "nohup my_command >/dev/null 2>&1 & echo \$! > '$pidFile'"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何以不同用户身份运行 nohup 而不生成两个进程? 的相关文章

  • AMQP延迟传递并防止重复消息

    我有一个会偶尔生成消息的系统 我只想每 5 分钟提交零条或一条消息 如果没有生成消息 队列消费者将不会处理任何内容 如果 5 分钟内生成一百条相同的消息 我只希望从队列中使用其中一条 我正在使用AMQP RabbitMQ 有没有办法在rab
  • 如果文件修改日期早于 N 天

    此问题涉及在文件的修改日期早于这么多天时采取行动 我确信创建日期或访问日期会类似 但对于修改日期 如果我有 file path name to some file N 100 for example N is number of days
  • 如何在bash中进行二进制加法

    我正在尝试将两个 32 位二进制数相加 其中之一是常数 address range in binary 另一个是数组的元素 IPinEachSubnet val 我正在尝试按照说明进行操作here https www linuxquesti
  • 如何获取 bash 中从 Ping 接收到的数据包的百分比?

    当 ping 主机时 我希望输出仅显示收到的数据包 已发送 5 个 的百分比 我想我需要使用grep不知怎的 但我不知道如何 我是 bash 编程的新手 这是我所在的地方 ping c 5 q host grep grep 中应该包含什么
  • 在 Bash 中从文本文件创建数组

    脚本采用 URL 解析它的所需字段 并将其输出重定向以保存在文件中 file txt 每次找到字段时 输出都会保存在新行中 file txt A Cat A Dog A Mouse etc 我要拿file txt并在新脚本中从中创建一个数组
  • 编写 shell 脚本以 am 或 pm 表示法显示时间

    我正在尝试编写一个 shell 脚本 以上午或下午的形式显示时间 而不是使用 date 命令显示时间 我不知道我应该如何去做这件事 我想对于初学者来说 如何从日期命令中提取时间来操作它 我如何提取小时数来操纵它 您正在寻找的是 man st
  • 管道安装时疏水阀是否按预期工作?

    以下是问题演示的最少代码 http pastebin com 5TXDpSh5 http pastebin com 5TXDpSh5 bin bash set e set o pipefail function echoTraps echo
  • bash - 检查特定列中的单词,检查该行其他列中的值,将该行剪切并粘贴到新文本文件中

    我的文本文件包含约 20k 行 如下所示 file A ATOM 624 SC1 SER 288 54 730 23 870 56 950 1 00 0 00 ATOM 3199 NC3 POP 487 50 780 27 750 27 5
  • 为什么 RHEL 上的 bash 中 `read -t` 没有超时?

    Why read t在 RHEL5 或 RHEL6 上从管道读取时不会超时 这是我的示例 在从管道读取数据时 我的 RHEL 盒子不会超时 tail f logfile log grep something read t 3 variabl
  • 通过 Bash 命令在文本文件中查找并替换

    例如 对给定输入字符串进行查找和替换的最简单方法是什么abc 并替换为另一个字符串 例如XYZ在文件中 tmp file txt 我正在编写一个应用程序并使用 IronPython 通过 SSH 执行命令 但我不太了解 Unix 也不知道要
  • 如何在 Linux 中显示进程状态(阻塞、非阻塞)

    有没有办法查询 Linux 进程表中进程的状态 以便能够演示执行查询时进程是正在运行还是被阻止 我的目标是从进程或程序的 外部 执行此操作 因为我希望从操作系统进程的角度来理解这一点 但欢迎任何想法 这是Python代码阻塞的过程 impo
  • shell中基于正则表达式的颜色突出显示输出

    我想知道是否可以用颜色突出显示与某些字符串匹配的 shell 命令的输出 例如 如果我运行 myCommand 输出如下 gt myCommand DEBUG foo bar INFO bla bla ERROR yak yak 我希望所有
  • 使用 BASH 和 AWK 创建 HTML 表

    我在创建 html 表来显示文本文件中的统计信息时遇到问题 我确信有 100 种方法可以做得更好 但这里是 以下脚本中的注释显示了输出 bin bash function getapistats curl s http api exampl
  • Bash shell 读取错误:0:资源暂时不可用

    编写 bash 脚本时 有时你运行的命令会打开另一个程序 例如 npm composer 等 但同时你需要使用read以提示用户 你不可避免地会遇到这种错误 read read error 0 Resource temporarily un
  • git 可以知道你当前的分支是从哪个分支分支出来的吗?

    我想创建一个 git 别名 让我可以从其分支的原始分支同步我的分支 例如 如果我从
  • 安装 homebrew 后终端无法识别 nvm

    我通过自制软件安装了 nvm 但是当我运行 nvm v 或 nvm version 表单终端时 我收到消息 command not found nvm 当我查看 finder 和 cmd shift 时 我可以看到 nvm 文件夹 最初 我
  • 在 sed 中插入换行符 (Mac OS X)

    如何在 sed 的替换部分插入换行符 此代码不起作用 sed s 1234 n 1 g input txt gt output txt 其中 input txt 是 test1234foo123bar1234 和output txt应该是
  • Bash 脚本错误 [重复]

    这个问题在这里已经有答案了 我想知道下面的脚本有什么错误 我收到错误为 command not foundh line 1 command not foundh line 2 其连续的 我试过添加 但现在工作请告诉我该怎么做 bin bas
  • 使用 adb 从手机摄像头传输照片的脚本

    Story 我用手机摄像头拍照和录制视频 并将它们全部保存在我的内部存储 SD 卡上 我定期将它们备份到我的电脑上 因此我将这些相机照片保存在电脑存储中与手机存储同步 多年来 我一直通过以下方式将手机相机照片备份到电脑上 将手机插入电脑并允
  • 使用 Bash 按进程名称检查 Mac 进程是否正在运行

    如何使用 Bash 脚本中的进程名称检查 Mac OS X 上的进程是否正在运行 我正在尝试编写一个 Bash 脚本 如果进程已停止 它将重新启动进程 但如果进程仍在运行 则不执行任何操作 解析这个 ps aux grep v grep g

随机推荐

  • 如何指定 Spray Content-Type 响应标头?

    我知道喷雾为我做到了这一点 但我仍然想用我的标头覆盖它 如何覆盖响应中的标头 我的回复如下 case HttpRequest GET Uri Path something gt sender HttpResponse entity key
  • django-social-auth 认证服务不正确

    我今天尝试使用 django social auth 但结果每次尝试使用它登录时都会出现错误 我正在使用在其 git master 分支中找到的示例 放入我的 facebook 密钥 但是当我单击使用 facebook 登录时 出现错误 身
  • 如何设置 JAX-WS Web 服务客户端的超时?

    我已经使用 JAXWS RI 2 1 基于 WSDL 为我的 Web 服务创建了一个接口 我可以毫无问题地与 Web 服务交互 但无法指定向 Web 服务发送请求的超时 如果由于某种原因它没有响应 客户端似乎就会永远旋转它的轮子 四处寻找发
  • ALAssets 组枚举:如何检查是否完成?

    ALAssets 使用单独的线程来管理枚举 我必须知道枚举何时终止 组枚举的块原型是 typedef void ALAssetsLibraryGroupsEnumerationResultsBlock ALAssetsGroup group
  • 建立本地连接时不允许主机连接到此 mysql 服务器 [关闭]

    Closed 这个问题是无关 目前不接受答案 当我尝试使用 putty 连接时 我收到 主机不允许连接到此 mysql 服务器 为什么会发生这种情况 主机和客户端都在我的机器上 当我使用命令行连接时 它会连接 您需要更改配置的设置方式 注释
  • 将键盘事件附加到 html5 canvas

    看起来像mouse events将添加听众canvas元素很好 但是keyboard events似乎不适合canvas元素 例子 http jsfiddle net H8Ese 1 浏览器 铬14 0 FF 5 0 1 我知道我可以使用文
  • 如何在linux mint中将python3更改为默认值

    我在新安装的操作系统 linux Mint 19 3 中将 python3 更改为默认值时遇到了一些问题 在 Ubuntu 16 04 上这非常简单 但现在我需要一些帮助 所以 我跑 python version 并得到了这个 Python
  • UIImagePickerController 不填满屏幕

    我正在向 UIImagePickerController 添加自定义叠加层 并且视图底部有一个持续的黑条 这是我实例化控制器的代码 UIImagePickerController imagePicker if imagePicker ret
  • NSString 是存储在堆上还是堆栈上?初始化 NSString 的好方法是什么?

    我有 2 个新问题 1 考虑这一行 NSString myString NSString alloc initWithString Value 我学到了两件事 但我想确认一下 据我所知 alloc 消息表明 NSString 的实例将存储在
  • Application Insights 不跟踪 SQL 查询

    我正在尝试配置自己的环境 以使用状态监视器将数据发送到 App Insight 并且除了 sql 查询之外工作正常 我在 Azure VM 上有一个环境 其中包含 Azure 数据库 并且 SQL 查询跟踪良好 但在我自己的 VM 中 针对
  • 如何随时恢复 ftp 下载? (shell 脚本,wget 选项)?

    我想从 ftp 服务器下载一个大文件 每个文件大小为 50 100MB 在每个点 我希望能够设置 起始 点和我想要的块的长度 我不会在本地保存 以前的 块 即我不能要求程序 恢复 下载 最好的方法是什么 我用wget大多数情况下 但还有其他
  • Google Drive API:用户尚未授予应用程序错误

    我正在关注Quickstart on https developers google com drive api v3 quickstart python 我已经通过页面启用了驱动API 加载了凭证 json并可以成功列出我的谷歌驱动器中的
  • 单例和 HttpApplicationState

    在 Web 应用程序中 我只需要一个名为 ProcessManager 的类的实例 一种方法是使其成为单例 另一种方法是使用 HttpApplicationState 确保我始终访问同一个实例 如下所示 public static Proc
  • python 使用另一个文件中的变量

    我是新手 正在尝试制作一个简单的随机句子生成器 如何从存储在另一个 py 文档中的列表中提取随机项目 我在用着 random choice verb list 从列表中拉出 如何告诉 python verb list 在另一个文档中 此外
  • 仅计算最后一个指数加权移动平均 pandas

    我知道 对于熊猫来说 通过这样做 test df ewm halflife half life for mean mean 我可以随时得到指数移动平均线 然而我实际上只对最后一个感兴趣 我怀疑通过计算所有它可能有点低效 换句话说 我所需要的
  • TFS 2010 - 在完成“撤消挂起的更改”后,有什么方法可以恢复我的更改吗?

    完成 撤消挂起的更改 后 有什么方法可以恢复我在本地计算机中所做的更改吗 我认为这是不可能的 但我仍然想知道是否有人知道一种方法 如果你有not在 撤消挂起的更改 之后构建您的项目 您可以在 Reflector 中打开 dll 并复制正确的
  • “__get__”参数之一是否多余? [复制]

    这个问题在这里已经有答案了 正如这里所描述的 https docs python org 3 reference datamodel html object get 传递给 get 方法的两个参数 self 除外 分别是访问属性的对象和类
  • Fluent Assertions 可以对 IEnumerable 使用字符串不敏感的比较吗?

    我有一对列表 我正在尝试使用流畅的断言进行比较 我可以轻松地编写比较代码 但我想使用 Fluent Assertions 以便我可以获得在测试失败消息中显示的原因 到目前为止我所看到的所有内容似乎都使用默认的 Object Equals 比
  • 如何将 JRUBY_OPTS 与 RVM 一起使用?

    似乎在基于 RVM 的 Rails 项目中向 JRuby 提供标志的惯用方法是设置环境变量 JRUBY OPTS 或 PROJECT JRUBY OPTS 后者可能是自动完成的 因为我看到我可以从项目目录中取消注释这一行 rvmrc PRO
  • 如何以不同用户身份运行 nohup 而不生成两个进程?

    我试图 nohup 一个命令并以不同的用户身份运行它 但每次我这样做都会生成两个进程 例如 nohup su s bin bash nobody c my command gt outfile txt 这肯定以无人身份运行 my comma