1 Commits

Author SHA1 Message Date
2143aa10b5 Fix systemd user 2020-04-08 11:08:01 -04:00

View File

@@ -61,6 +61,8 @@ OPTIONS
Specify URL to source DEB package (Default: automatic) Specify URL to source DEB package (Default: automatic)
--betapass PASSWORD --betapass PASSWORD
Enter beta team password for access to beta builds Enter beta team password for access to beta builds
--service SERVICE
See SERVICES section below for a list of possible service to install
-v|--version -v|--version
Print this script version and exit Print this script version and exit
-d|--debug -d|--debug
@@ -80,14 +82,13 @@ OPTIONS
--createrepo-user USER --createrepo-user USER
The web server user (Default: www-user) The web server user (Default: www-user)
See SERVICES for service-createrepo to automate createrepo
SERVICES SERVICES
--service-mediaserver mediaserver
Install JRiver MC mediaserver service Create and enable a JRiver MC Media Server systemd service for the current user
--service-x11vnc-mediaserver
Install JRiver MC mediaserver service and x11vnc (for headless installations without x11vnc-mediaserver
an existing X server) Create and enable a JRiver MC mediaserver service and x11vnc (for headless
installations without an existing X server) service for the current user
--vncpass PASSWORD --vncpass PASSWORD
Set vnc password for x11vnc access. If no password is set, the script will either use Set vnc password for x11vnc access. If no password is set, the script will either use
@@ -96,8 +97,13 @@ OPTIONS
Start X11VNC on this display (Default: The current display or :0 if current display is Start X11VNC on this display (Default: The current display or :0 if current display is
unaccessible) unaccessible)
--service-createrepo createrepo
Install service to build latest MC and run createrepo hourly Install service to build latest MC RPM and run createrepo hourly for the current user
--createrepo-webroot PATH
The webroot directory to install the repo (Default: /var/www/html)
--createrepo-user USER
The web server user (Default: www-user)
EOF EOF
# Exit using passed exit code # Exit using passed exit code
@@ -108,7 +114,7 @@ EOF
_parseInput () { _parseInput () {
if _input=$(getopt -o +vdhu -l repo,build,outputdir:,mcversion:,restorefile:,boardurl:,deburl:,betapass:,version,debug,help,uninstall,createrepo,createrepo-webroot:,createrepo-user:,service-mediaserver,service-x11vnc-mediaserver,vncpass:,display:,service-createrepo -- "$@"); then if _input=$(getopt -o +vdhu -l repo,build,outputdir:,mcversion:,restorefile:,boardurl:,deburl:,betapass:,service:,version,debug,help,uninstall,createrepo,createrepo-webroot:,createrepo-user:,vncpass:,display: -- "$@"); then
eval set -- "$_input" eval set -- "$_input"
while true; do while true; do
case "$1" in case "$1" in
@@ -138,6 +144,9 @@ EOF
--betapass) --betapass)
shift && _betapass="$1" shift && _betapass="$1"
;; ;;
--service)
shift && _service="$1"
;;
--version|-v) --version|-v)
echo "Version: $_scriptversion" echo "Version: $_scriptversion"
exit 0 exit 0
@@ -162,21 +171,12 @@ EOF
--createrepo-user) --createrepo-user)
shift && _createrepo_user="$1" shift && _createrepo_user="$1"
;; ;;
--service-mediaserver)
_service_ms="true"
;;
--service-x11vnc-mediaserver)
_service_xms="true"
;;
--vncpass) --vncpass)
shift && _vncpass="$1" shift && _vncpass="$1"
;; ;;
--display) --display)
shift && _display="$1" shift && _display="$1"
;; ;;
--service-createrepo)
_service_createrepo="true"
;;
--) --)
shift shift
break break
@@ -222,11 +222,6 @@ EOF
_sanityChecks () { _sanityChecks () {
if [[ -n $_service_ms && -n $_service_xms ]]; then
echo "--service-mediaserver is redundant when --service-x11vnc-mediaserver is set, unsetting..."
unset _service_ms
fi
if ! [[ "$ID" == "fedora" || "$ID" == "centos" ]] && \ if ! [[ "$ID" == "fedora" || "$ID" == "centos" ]] && \
[[ -z $_installrepo && -z $_buildonly && -z $_createrepo ]]; then [[ -z $_installrepo && -z $_buildonly && -z $_createrepo ]]; then
echo "You must specify --repo, --build, or --createrepo on non-RHEL distributions!" echo "You must specify --repo, --build, or --createrepo on non-RHEL distributions!"
@@ -705,19 +700,16 @@ EOF"
unset _service_fname _service_name _timer_fname _timer_name _systemd_user unset _service_fname _service_name _timer_fname _timer_name _systemd_user
_service_name="$1.service"
_timer_name="$1.timer"
if [[ "$_user" == "root" ]]; then if [[ "$_user" == "root" ]]; then
_service_fname="/usr/lib/systemd/system/$1.service" _service_fname="/usr/lib/systemd/system/$1.service"
_timer_fname="/usr/lib/systemd/system/$1.timer" _timer_fname="/usr/lib/systemd/system/$1.timer"
_service_name="$1.service"
_timer_name="$1.timer"
else else
if [[ ! -d "$HOME/.config/systemd/user" ]]; then _service_fname="/usr/lib/systemd/system/$1@.service"
mkdir -p "$HOME/.config/systemd/user" _timer_fname="/usr/lib/systemd/system/$1@.timer"
fi _service_name="$1@$_user.service"
_service_fname="$HOME/.config/systemd/user/$1.service" _timer_name="$1@$_user.timer"
_timer_fname="$HOME/.config/systemd/user/$1.timer"
_systemd_user="User=$_user"
fi fi
} }
@@ -726,14 +718,13 @@ EOF"
_generateServiceVars "jriver-mediaserver" _generateServiceVars "jriver-mediaserver"
bash -c "cat <<-EOF > $_service_fname "${_bash_cmd[@]}" "cat <<-EOF > $_service_fname
[Unit] [Unit]
Description=JRiver Media Center $_mversion Media Server Description=JRiver Media Center $_mversion Media Server
After=graphical.target After=graphical.target
[Service] [Service]
Type=simple Type=simple
$_systemd_user
Environment=DISPLAY=$_display Environment=DISPLAY=$_display
ExecStart=/usr/bin/mediacenter$_mversion /MediaServer ExecStart=/usr/bin/mediacenter$_mversion /MediaServer
Restart=always Restart=always
@@ -756,26 +747,25 @@ EOF"
_generateServiceVars "jriver-x11vnc" _generateServiceVars "jriver-x11vnc"
if [[ "$_novncauth" == "true" ]]; then if [[ "$_novncauth" == "true" ]]; then
_exec_start_cmd="/usr/bin/x11vnc -display $_display -geometry 1920x1080 -auth guess -forever -bg -nopw" _exec_start_cmd="/usr/bin/x11vnc -display $_display -noscr -geometry 1920x1080 -auth guess -forever -bg -nopw"
else else
_exec_start_cmd="/usr/bin/x11vnc -display $_display -geometry 1920x1080 -rfbauth $HOME/.vnc/jrmc_passwd -auth guess -forever -bg" _exec_start_cmd="/usr/bin/x11vnc -display $_display -noscr -geometry 1920x1080 -rfbauth $HOME/.vnc/jrmc_passwd -auth guess -forever -bg"
fi fi
bash -c "cat <<-EOF > $_service_fname "${_bash_cmd[@]}" "cat <<-EOF > $_service_fname
[Unit] [Unit]
Description=x11vnc Description=x11vnc
After=display-manager.service After=display-manager.service
[Service] [Service]
Type=forking Type=forking
$_systemd_user
Environment=DISPLAY=$_display Environment=DISPLAY=$_display
ExecStart=$_exec_start_cmd ExecStart=$_exec_start_cmd
Restart=always Restart=always
RestartSec=10 RestartSec=10
[Install] [Install]
WantedBy=graphical.target WantedBy=default.target
EOF" EOF"
_systemctlReloadAndEnable "$_service_name" _systemctlReloadAndEnable "$_service_name"
} }
@@ -785,18 +775,17 @@ EOF"
_generateServiceVars "jriver-createrepo" _generateServiceVars "jriver-createrepo"
bash -c "cat <<-EOF > $_service_fname "${_bash_cmd[@]}" "cat <<-EOF > $_service_fname
[Unit] [Unit]
Description=Builds JRiver Media Center RPM file, moves it to the repo dir, and runs createrepo Description=Builds JRiver Media Center RPM file, moves it to the repo dir, and runs createrepo
[Service] [Service]
$_systemd_user
ExecStart=$_basedir/installJRMC --buildpath=$_outputdir --createrepo --createrepo-webroot $_createrepo_webroot --createrepo-user $_createrepo_user ExecStart=$_basedir/installJRMC --buildpath=$_outputdir --createrepo --createrepo-webroot $_createrepo_webroot --createrepo-user $_createrepo_user
[Install] [Install]
WantedBy=multi-user.target WantedBy=default.target
EOF" EOF"
bash -c "cat <<-EOF > $_timer_fname "${_bash_cmd[@]}" "cat <<-EOF > $_timer_fname
[Unit] [Unit]
Description=Run JRiver MC rpmbuild hourly Description=Run JRiver MC rpmbuild hourly
@@ -905,7 +894,7 @@ EOF"
fi fi
# Install createrepo systemd service # Install createrepo systemd service
if [[ -n $_service_createrepo ]]; then if [[ "$_service" == "createrepo" ]]; then
_serviceCreaterepo _serviceCreaterepo
fi fi
@@ -917,12 +906,12 @@ EOF"
_openFirewallPorts _openFirewallPorts
# Install MC systemd services # Install MC systemd services
if [[ -n $_service_xms ]]; then if [[ "$_service" == "x11vnc-mediaserver" ]]; then
_serviceMediaserver _serviceMediaserver
_serviceX11VNC _serviceX11VNC
fi fi
if [[ -n $_service_ms ]]; then if [[ "$_service" == "mediaserver" ]]; then
_serviceMediaserver _serviceMediaserver
fi fi
} }