我想与特定用户运行一个进程。
在 RHEL 7 上,我可以通过以下方式实现:
source /etc/rc.d/init.d/functions
daemon --user=myuser $JAVA_HOME/bin/java -cp $appClassPath $MAIN_CLASS
如何在 SLES12 上实现相同的行为?/etc/rc.d/init.d/functions
SLES12 上不提供开箱即用的功能。
答案1
SUSE 希望您使用 LSB start_daemon。 (https://en.opensuse.org/openSUSE:Packaging_init_scripts)。
但我不确定它是否会在 systemd 时代继续存在或者即将被逐步淘汰。
当然,在 systemd 系统中推荐的方法是创建一个 systemd 单元......
否则,请使用默认工具,例如runuser
或su
甚至 sudo ,它的便利之处在于您可以以有权运行该命令行的任何用户身份调用它。
后台并分离这些包装器中的程序(或执行它)。可能需要 nohup 的帮助。
这更符合标准,并且不与已弃用的初始化系统基础设施耦合。