服务默认root在我的RHEL框上启动时启动.如果我没记错的话,对于使用init脚本的其他Linux发行版也是如此/etc/init.d.
您认为最好的方法是让流程作为我选择的(静态)用户运行?
我到达的唯一方法是使用类似的东西:
su my_user -c 'daemon my_cmd &>/dev/null &'
Run Code Online (Sandbox Code Playgroud)
但这似乎有点凌乱......
是否有一些隐藏的魔法可以提供一种简单的机制来自动启动服务,就像其他非root用户一样?
编辑:我应该说我在这个实例中开始的过程是Python脚本或Java程序.我宁愿不在它们周围写一个原生包装器,所以不幸的是我无法像Black建议的那样调用setuid().
我正在写一个Linux守护进程.我发现了两种方法.
fork()和设置来守护您的过程sid.&.这是正确的方法吗?
为了工作,我需要编写一个tcp守护进程来响应我们的客户端软件,并想知道是否有任何人有关于最佳方式的任何提示.
我应该为每个新连接分叉,因为我会使用线程吗?