如何在启动时以某个用户身份运行应用程序?

有没有办法在启动期间在某个用户帐户下启动应用程序?

例如,我想在用户帐户bob (在bobsgroup组中)下运行bobsgroup 。 我是否在/etc/init.d添加了一些内容?

注意:我不希望应用程序在用户登录后启动而是在计算机启动时启动。

启动系统不可知的方法。 您可以在/etc/rc.local /etc/init.d/...脚本,Upstart配置文件以及可能的systemd配置中使用它。

 sudo -u oli /full/path/to/application 

此命令将以root用户身份运行, sudo将下拉到“oli”用户。 显然,为了您的目的更改用户和命令。

我应该补充一点,至少有十几种方法可以做到这一点……但根据我的经验,它们的效果基本相同。 这是一个使用其setuid节的新贵示例:

 start on (filesystem and stopped udevtrigger) stop on runlevel [06] setuid oli respawn exec /full/path/to/application 

似乎第一个答案在Ubuntu 14.10中不起作用了。

我就是这样做的(把它放在/etc/rc.local中)

 su  - -c ""