
Я хочу запустить процесс с определенным пользователем.
В 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.
Это больше соответствует стандарту и не связано с устаревшей инфраструктурой init-system.