我在 shell 中运行一个 java 程序并将进程 ID 写入文本文件。所以当我这样做时:
nohup java app.Main > /dev/null 2>&1 &
echo $! > /var/run/app.pid
Run Code Online (Sandbox Code Playgroud)
有用。但我真的想以另一个用户的身份运行它
su - appuser -c "nohup java app.Main > /dev/null 2>&1 &"
echo $! > /var/run/app.pid
Run Code Online (Sandbox Code Playgroud)
这不起作用。有没有办法获取使用 -c 选项启动的命令的进程 ID?