如何在启动时与Ubuntu 12.04上的特定用户运行bash脚本(稳定)

时间:2015-08-26 13:15:37

标签: bash ubuntu startup

对于Linux环境相当新,并且没有本地资源可以查询,我想问一下在Ubuntu 12.04系统上作为特定用户启动进程的首选方法是什么。这种设置的原因是这台机器将在工业环境中托管输入/输出控制器(IOC)。如果机器出现故障或重新启动,则此过程必须每次自动启动.....

我的互联网搜索提供了两个这样的区域来执行此任务:

/etc/rc.local
/etc/init.d/

我要求每种方法的具体优点和缺点。我补充一点,这些机器中的一些是客户端,有些是服务器,但都需要运行IOC,最好以相同的方式运行。

在上述任何方法被认为是最合适的情况下,必须以我的指定用户身份运行bash shell脚本。我的理解是所有启动过程都归root所有。所以我怀疑这是否是最好的做法:

sudo -u <user> start_ioc.sh

如果是这种情况,那么我认为需要在:

下创建一个文件
/etc/sudoers.d/

使用:

sudo visudo -f <filename>

在此文件中,您可以为用户分配适当的权限和路径。我的大多数搜索都将其显示为正确的格式:

<user or group> <host or IP>=(<user or group to run as>)NOPASSWD:<list of comma separated applications>
root ALL=(user)NOPASSWD:/usr/bin/start_ioc.sh

因此,对于最终的附加信息,这种方法的最终原因(也可能是有缺陷的逻辑)是IOC进程需要访问网络连接服务器(NAS)。允许root访问NAS是我认为禁止,用户可以分配适当的权限。

1 个答案:

答案 0 :(得分:0)

这可能不是最好的答案,但这是我决定完成这项任务的方式:

正如这篇文章:

how to run script as another user without password

我确实使用rc.local在启动时启动了进程。它看起来效果很好。