7.19a: configuration with systemd

This commit is contained in:
viennet 2020-12-05 17:29:26 +01:00
parent 4be0b94e48
commit 46537f13c4
11 changed files with 56 additions and 20 deletions

View File

@ -1,7 +1,7 @@
# -*- mode: python -*- # -*- mode: python -*-
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
SCOVERSION = "7.18" SCOVERSION = "7.19a"
SCONAME = "ScoDoc" SCONAME = "ScoDoc"

17
config/configure_systemd.sh Executable file
View File

@ -0,0 +1,17 @@
#!/bin/bash
# Modify ScoDoc install tu use systemd
# E. Viennet, 2020-12-04
source config.sh
source utils.sh
check_uid_root $0
echo 'Installation du demarrage automatique de ScoDoc (systemd)'
cp $SCODOC_DIR/config/etc/scodoc.service /etc/systemd/system
systemctl enable scodoc.service
echo "A partir de maintenant, utiliser"
echo " pour demarrer: systemctl start scodoc"
echo " pour arreter : systemctl stop scodoc"

View File

@ -41,7 +41,8 @@ cfg_pathname="${SCODOC_VAR_DIR}/config/depts/$DEPT".cfg
if [ -e $cfg_pathname ] if [ -e $cfg_pathname ]
then then
# arret de ScoDoc # arret de ScoDoc
/etc/init.d/scodoc stop scodocctl stop
# suppression de la base postgres # suppression de la base postgres
db_name=$(cat $cfg_pathname | sed '/^dbname=*/!d; s///;q') db_name=$(cat $cfg_pathname | sed '/^dbname=*/!d; s///;q')
echo "suppression de la base postgres $db_name" echo "suppression de la base postgres $db_name"
@ -53,7 +54,7 @@ then
read ans read ans
if [ "$(norm_ans "$ans")" = 'Y' ] if [ "$(norm_ans "$ans")" = 'Y' ]
then then
/etc/init.d/scodoc start scodocctl start
fi fi
exit 0 exit 0
else else

View File

@ -19,7 +19,7 @@ echo "Changing to directory " $SCODOC_DIR/config
cd $SCODOC_DIR/config cd $SCODOC_DIR/config
echo "Stopping ScoDoc..." echo "Stopping ScoDoc..."
/etc/init.d/scodoc stop scodocctl stop
# DROITS # DROITS
echo -n "Verification des droits: proprietaire www-data ? (y/n) [y] " echo -n "Verification des droits: proprietaire www-data ? (y/n) [y] "

View File

@ -219,9 +219,10 @@ echo -n "Voulez vous installer le service scodoc ? (y/n) [y] "
read ans read ans
if [ "$(norm_ans "$ans")" != 'N' ] if [ "$(norm_ans "$ans")" != 'N' ]
then then
echo 'Installation du demarrage automatique de ScoDoc' # ScoDoc 7.19+ uses systemd
cp $SCODOC_DIR/config/etc/scodoc /etc/init.d/ echo 'Installation du demarrage automatique de ScoDoc (systemd)'
update-rc.d scodoc defaults cp $SCODOC_DIR/config/etc/scodoc.service /etc/systemd/system
systemctl enable scodoc.service
fi fi

View File

@ -71,7 +71,7 @@ fi
echo "Source is $SRC" echo "Source is $SRC"
echo "Stopping ScoDoc..." echo "Stopping ScoDoc..."
/etc/init.d/scodoc stop scodocctl stop
# Erase all postgres databases and load data # Erase all postgres databases and load data
chmod a+rx "$SRC" chmod a+rx "$SRC"
@ -141,5 +141,4 @@ cd $SCODOC_DIR/config
# #
echo echo
echo "Ok. Run \"/etc/init.d/scodoc start\" to start ScoDoc." scodocctl start

View File

@ -8,6 +8,7 @@
# #
# E. Viennet, Sept 2011, Aug 2020 # E. Viennet, Sept 2011, Aug 2020
# #
source utils.sh
# Destination directory # Destination directory
if [ ! $# -eq 1 ] if [ ! $# -eq 1 ]
@ -37,7 +38,7 @@ source utils.sh
check_uid_root $0 check_uid_root $0
echo "Stopping ScoDoc..." echo "Stopping ScoDoc..."
/etc/init.d/scodoc stop scodocctl stop
# Dump all postgres databases # Dump all postgres databases
echo "Dumping SQL database..." echo "Dumping SQL database..."

View File

@ -28,8 +28,7 @@ then
(cd "$SCODOC_DIR"; find . -name .svn -type d -exec dirname {} \; | xargs svn upgrade) (cd "$SCODOC_DIR"; find . -name .svn -type d -exec dirname {} \; | xargs svn upgrade)
fi fi
echo "Stopping ScoDoc..." scodocctl stop
/etc/init.d/scodoc stop
echo echo
echo "Using SVN to update $SCODOC_DIR..." echo "Using SVN to update $SCODOC_DIR..."
@ -133,7 +132,6 @@ su -c "$SCODOC_DIR/config/postupgrade-db.py" $POSTGRES_USER
# #
echo echo
echo "Starting ScoDoc..." scodocctl start
/etc/init.d/scodoc start

View File

@ -29,6 +29,25 @@ terminate() {
exit 1 exit 1
} }
# Start/stop scodoc, using sysv or systemd
scodocctl() {
if [ "$1" = "start" ]; then
echo "Starting ScoDoc..."
elif [ "$1" = "stop" ]; then
echo "Stopping ScoDoc"
else
echo "Error: invalid argument for scodocctl"
exit 1
fi
if [ -e /etc/systemd/system/scodoc.service ]
then
systemctl $1 scodoc
else
echo "(using legacy SystemV)"
/etc/init.d/scodoc $1
fi
}
# --- Ensure postgres user www-data exists # --- Ensure postgres user www-data exists
init_postgres_user() { # run as root init_postgres_user() { # run as root
if [ -z $(echo "select usename from pg_user;" | su -c "$PSQL -d template1 -p $POSTGRES_PORT" $POSTGRES_SUPERUSER | grep $POSTGRES_USER) ] if [ -z $(echo "select usename from pg_user;" | su -c "$PSQL -d template1 -p $POSTGRES_PORT" $POSTGRES_SUPERUSER | grep $POSTGRES_USER) ]
@ -43,7 +62,7 @@ init_postgres_user() { # run as root
# XXX inutilise # XXX inutilise
gen_passwd() { gen_passwd() {
PASSWORD_LENGTH="8" PASSWORD_LENGTH="8"
ALLOWABLE_ASCII="~@#$%^&*()_+=-?><0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" ALLOWABLE_ASCII="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz@#$%^&*()_+=-?><"
SEED=$(head -c4 /dev/urandom | od -t u4 | awk '{ print $2 }') SEED=$(head -c4 /dev/urandom | od -t u4 | awk '{ print $2 }')
RANDOM=$SEED RANDOM=$SEED
n=1 n=1

View File

@ -15,7 +15,7 @@ Le copier sur la machine destination.
2) Sur la machine destination: 2) Sur la machine destination:
Avant toute chose, stopper scodoc: Avant toute chose, stopper scodoc:
/etc/init.d/scodoc stop /etc/init.d/scodoc stop (ou systemctl stop scodoc))
1.1) Supprimer toutes les bases ScoDoc existantes s'il y en a: 1.1) Supprimer toutes les bases ScoDoc existantes s'il y en a:
su postgres su postgres
@ -42,7 +42,7 @@ done
Puis redemarrer ScoDoc: Puis redemarrer ScoDoc:
en tant que root: /etc/init.d/scodoc start en tant que root: /etc/init.d/scodoc start (ou systemctl start scodoc)
NB: si la version des sources a changée, lancer imperativement le script de mise a jour NB: si la version des sources a changée, lancer imperativement le script de mise a jour
avant de redemarrer scodoc, afin qu'il change si besoin la base de donnees: avant de redemarrer scodoc, afin qu'il change si besoin la base de donnees:

View File

@ -12,7 +12,7 @@
# #
# Note: pour restaurer un backup (en supprimant la base existante !): # Note: pour restaurer un backup (en supprimant la base existante !):
# #
# 0- Arreter scodoc: /etc/init.d/scodoc stop # 0- Arreter scodoc: /etc/init.d/scodoc stop (ou systemctl stop scodoc)
# #
# Puis en tant qu'utilisateur postgres: su postgres # Puis en tant qu'utilisateur postgres: su postgres
# 1- supprimer la base existante si elle existe: dropdb SCOXXX # 1- supprimer la base existante si elle existe: dropdb SCOXXX
@ -23,7 +23,7 @@
# 3- pg_restore -d SCOXXX SCOXXX_pgdump # 3- pg_restore -d SCOXXX SCOXXX_pgdump
# #
# Revenir a l'utilisateur root: exit # Revenir a l'utilisateur root: exit
# 4- Relancer scodoc: /etc/init.d/scodoc start # 4- Relancer scodoc: /etc/init.d/scodoc start (ou systemctl start scodoc)
DBNAME=$1 DBNAME=$1
DUMPBASE="$DBNAME"-BACKUPS DUMPBASE="$DBNAME"-BACKUPS