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(通常情况下,普通用户不能创建在根目录的文件/)。