Ubuntu Startscript - ausführen als User

Started by UncleSam, April 30, 2016, 11:05:16 PM

Previous topic - Next topic

UncleSam

Für alle die sowas benötigen:
Ich habe eine temporäre Lösung für mich geschaffen. Wer will kann es gerne verwenden (auf eigene Gefahr!).

Nachfolgend ist beschrieben, wie man in einer Ubuntu 14.04 Umgebung ein Startscript erstellt, welches den Bot unter einem definierten Benutzer ausführt. Außerdem ist damit auch der Start des Bots beim Systemstart möglich. Dabei benutzt das Script lediglich das Start/Stop Script von Stefan1200 (sprich es leitet alle Anfragen weiter).

Changelog:
Quote
pre 01.05.2016

       
  • Initial release
01.05.2016

       
  • Command "java" now gets executed under current user, so root is able to install java

Installationsanleitung:
Script (speichern in /etc/init.d/jts3servermod):
Code (Bash) Select
#!/bin/sh
### BEGIN INIT INFO
# Provides:
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: JTS3ServerMod init.d script
# Description:      JTS3ServerMod by stefan1200.de
### END INIT INFO


dir="/home/tsbots/JTS3ServerMod_HostingEdition"
cmd="./jts3servermod_startscript.sh"
user="tsbots"


case "$1" in
        java)
                cd "$dir"
                $cmd java
        ;;
        start)
                cd "$dir"
                sudo -u "$user" $cmd start
        ;;
        stop)
                cd "$dir"
                sudo -u "$user" $cmd stop
        ;;
        restart)
                cd "$dir"
                sudo -u "$user" $cmd restart
        ;;
        status)
                cd "$dir"
                sudo -u "$user" $cmd status
        ;;
        *)
                cd "$dir"
                sudo -u "$user" $cmd
esac
exit 0



Anschließend das Script ausführbar machen:
Quote# chmod u+x /etc/init.d/jts3servermod


Wer den Bot automatisch starten/stoppen lassen möchte muss nur noch folgendes eingeben (Informationen siehe Header des StartScriptes):
Quoteupdate-rc.d jts3servermod defaults


Verwendung:

Du kannst nun den Bot per root starten/stoppen/... im jeweiligen Benutzerkontext. Sofern du den Bot mit dem Benutzer selbst kontrollieren willst kannst du dies mit dem Start/Stop Script im Bot Verzeichnis selber.

Befehl (anstatt von "start" geht auch: stop, restart, status und java):
Quote# service jts3servermod start

Oder alternativ:
Quote# /etc/init.d/jts3servermod start

Edit by Stefan1200: BBCode fixes

Hermann

oot@herman-server:/home/bot# systemctl status jts3servermod.service
● jts3servermod.service
     Loaded: bad-setting (Reason: Unit jts3servermod.service has a bad unit file setting.)
     Active: inactive (dead)

Aug 01 18:45:41 herman-server systemd[1]: /lib/systemd/system/jts3servermod.service:1: Unknown section 'Unit]Description=JTS3ServermodAfter=network.target[Service'. Ignoring.
Aug 01 18:45:41 herman-server systemd[1]: jts3servermod.service: Service has no ExecStart=, ExecStop=, or SuccessAction=. Refusing.
Aug 01 18:45:50 herman-server systemd[1]: /lib/systemd/system/jts3servermod.service:1: Unknown section 'Unit]Description=JTS3ServermodAfter=network.target[Service'. Ignoring.
Aug 01 18:49:28 herman-server systemd[1]: /lib/systemd/system/jts3servermod.service:1: Unknown section 'Unit]Description=JTS3ServermodAfter=network.target[Service'. Ignoring.
Aug 01 18:49:28 herman-server systemd[1]: jts3servermod.service: Service has no ExecStart=, ExecStop=, or SuccessAction=. Refusing.
Aug 01 18:49:39 herman-server systemd[1]: /lib/systemd/system/jts3servermod.service:1: Unknown section 'Unit]Description=JTS3ServermodAfter=network.target[Service'. Ignoring.
Aug 01 18:49:39 herman-server systemd[1]: jts3servermod.service: Service has no ExecStart=, ExecStop=, or SuccessAction=. Refusing.
Aug 01 18:49:44 herman-server systemd[1]: /lib/systemd/system/jts3servermod.service:1: Unknown section 'Unit]Description=JTS3ServermodAfter=network.target[Service'. Ignoring.
Aug 01 18:51:02 herman-server systemd[1]: /lib/systemd/system/jts3servermod.service:1: Unknown section 'Unit]Description=JTS3ServermodAfter=network.target[Service'. Ignoring.
Aug 01 18:51:12 herman-server systemd[1]: /lib/systemd/system/jts3servermod.service:1: Unknown section 'Unit]Description=JTS3ServermodAfter=network.target[Service'. Ignoring.