mirror of
https://gitdl.cn/https://github.com/chakralinux/core.git
synced 2025-02-10 03:44:36 +08:00
80 lines
1.6 KiB
Bash
Executable File
80 lines
1.6 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
. /etc/rc.conf
|
|
. /etc/rc.d/functions
|
|
. /etc/conf.d/postgresql
|
|
|
|
# Default PGROOT if it wasn't defined in the conf.d file
|
|
PGROOT=${PGROOT:-/var/lib/postgres}
|
|
PGLOG=${PGLOG:-/var/log/postgresql.log}
|
|
PGCTL_BIN=/usr/bin/pg_ctl
|
|
PGCTL_ARGS=(-D "$PGROOT/data" -l "$PGLOG" -s -w)
|
|
[[ $PGOPTS ]] && PGCTL_ARGS+=(-o "$PGOPTS")
|
|
|
|
postgres_init() {
|
|
# initialization
|
|
if [[ ! -d "$PGROOT/data" ]]; then
|
|
mkdir -p "$PGROOT/data" && chown -R postgres:postgres "$PGROOT"
|
|
su - postgres -c "/usr/bin/initdb $INITOPTS -D '$PGROOT/data'"
|
|
fi
|
|
if [[ ! -e "$PGLOG" ]]; then
|
|
touch "$PGLOG"
|
|
chown postgres "$PGLOG"
|
|
fi
|
|
}
|
|
|
|
do_postgres() {
|
|
su - postgres -c "'$PGCTL_BIN' $(printf '%q ' "${PGCTL_ARGS[@]}") $@"
|
|
}
|
|
|
|
case $1 in
|
|
start)
|
|
postgres_init
|
|
stat_busy "Starting PostgreSQL"
|
|
if do_postgres start; then
|
|
add_daemon postgresql
|
|
stat_done
|
|
else
|
|
stat_fail
|
|
exit 1
|
|
fi
|
|
;;
|
|
stop)
|
|
stat_busy "Stopping PostgreSQL"
|
|
if do_postgres stop -m fast; then
|
|
rm_daemon postgresql
|
|
stat_done
|
|
else
|
|
stat_fail
|
|
exit 1
|
|
fi
|
|
;;
|
|
reload)
|
|
stat_busy "Reloading PostgreSQL"
|
|
if do_postgres reload; then
|
|
stat_done
|
|
else
|
|
stat_fail
|
|
exit 1
|
|
fi
|
|
;;
|
|
restart)
|
|
postgres_init
|
|
stat_busy "Restarting PostgreSQL"
|
|
if do_postgres restart -m fast; then
|
|
add_daemon postgresql
|
|
stat_done
|
|
else
|
|
stat_fail
|
|
exit 1
|
|
fi
|
|
;;
|
|
status)
|
|
stat_busy "Checking PostgreSQL status";
|
|
ck_status postgresql
|
|
;;
|
|
*)
|
|
echo "usage: $0 {start|stop|reload|restart|status}"
|
|
exit 1
|
|
esac
|