Ind*_*ial 2 users su init-script upstart
我正在尝试更改用户以在启动期间执行特定命令。它无声地失败,显然没有执行 userchange,因为我可以看出命令没有执行。
我在下面显示的 initscript 中做错了什么?
respawn
console none
start on startup
stop on shutdown
script
su -u anotheruser -c "myCommand" >> "myLogfile.log"
end script
Run Code Online (Sandbox Code Playgroud)
我假设您正在运行最新版本的 ubuntu 或基于upstart的发行版。您可以检查/var/log/daemon.log
错误。
该标准su
采用语法su [options] [username]
。结帐man 1 su
。您可能想尝试:
su -c "myCommand" anotheruser >> "myLogfile.log"
Run Code Online (Sandbox Code Playgroud)
此外,会发生一些事情(主要是不可取的)
myLogfile.log
将归root
.myLogfile.log
/
如果您不使用绝对路径/tmp/myLogfile.log
(因为 upstart 在 pwd 设置为 的情况下运行),则会在(根目录)上创建/
。如果您希望该文件归anotheruser
您所有,您可以将命令切换到。
su -c "myCommand >> /tmp/myLogfile.log" anotheruser
Run Code Online (Sandbox Code Playgroud)
这个如果你有吃剩的可能导致问题myLogfile.log
归root
从早期的运行,或者如果没有改变myLogfile.log
的东西像/tmp/myLogfile.log
(通常情况下,普通用户不能创建在根目录的文件/
)。
归档时间: |
|
查看次数: |
16623 次 |
最近记录: |