
Ich möchte einen Prozess mit einem bestimmten Benutzer ausführen.
Unter RHEL 7 kann ich dies mit:
source /etc/rc.d/init.d/functions
daemon --user=myuser $JAVA_HOME/bin/java -cp $appClassPath $MAIN_CLASS
Wie kann ich dasselbe Verhalten unter SLES12 erreichen? Dies /etc/rc.d/init.d/functions
ist unter SLES12 nicht standardmäßig verfügbar.
Antwort1
SUSE möchte, dass Sie LSB start_daemon verwenden. (https://en.opensuse.org/openSUSE:Packaging_init_scripts).
Aber ich bin nicht sicher, ob es in systemd-Zeiten weitergeführt wird oder bald abgeschafft wird.
In systemd-Systemen empfiehlt es sich natürlich, eine systemd-Einheit zu erstellen ...
Andernfalls verwenden Sie die Standardtools wie runuser
oder su
oder sogar sudo, was den Vorteil hat, dass Sie es als jeder Benutzer mit Berechtigungen zum Ausführen dieser Befehlszeile aufrufen können.
Hintergrund und trennen Sie Ihr Programm innerhalb dieser Wrapper (oder führen Sie es aus). Möglicherweise mit Hilfe von nohup.
Das entspricht eher dem Standard und ist nicht an eine veraltete Init-System-Infrastruktur gekoppelt.