Fix systemd user
This commit is contained in:
83
installJRMC
83
installJRMC
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user