I couldn't find one of these soo...
#!/usr/bin/openrc-run
# Distributed under the terms of the GNU General Public License v2
extra_commands="checkconfig"
extra_started_commands="reload"
: ${MARIABD_CONFDIR:=/etc/mysql}
: ${MARIABD_CONFIG:=${MARIABD_CONFDIR}/my.cnf}
: ${MARIABD_PIDFILE:=/run/mariadb/${SVCNAME}.pid}
: ${MARIABD_BINARY:=/usr/bin/mysqld_safe}
depend() {
use logger dns
if [ "${rc_need+set}" = "set" ] ; then
: # Do nothing, the user has explicitly set rc_need
else
local x warn_addr
for x in $(awk '/^ListenAddress/{ print $2 }' "$MARIABD_CONFIG" 2>/dev/null) ; do
case "${x}" in
0.0.0.0|0.0.0.0:*) ;;
::|\[::\]*) ;;
*) warn_addr="${warn_addr} ${x}" ;;
esac
done
if [ -n "${warn_addr}" ] ; then
need net
ewarn "You are binding an interface in ListenAddress statement in your mariadbd_config!"
ewarn "You must add rc_need=\"net.FOO\" to your /etc/conf.d/mariadbd"
ewarn "where FOO is the interface(s) providing the following address(es):"
ewarn "${warn_addr}"
fi
fi
}
checkconfig() {
if [ ! -d /var/empty ] ; then
mkdir -p /var/empty || return 1
fi
if [ ! -e "${MARIABD_CONFIG}" ] ; then
eerror "You need an ${MARIABD_CONFIG} file to run mariadbd"
eerror "There is a sample file in /usr/share/doc/openmariadb"
return 1
fi
}
start() {
checkconfig || return 1
ebegin "Starting ${SVCNAME}"
echo "PIDFILE ${MARIABD_PIDFILE}"
start-stop-daemon --start --background --exec "${MARIABD_BINARY}" --pidfile "${MARIABD_PIDFILE}" -- ${MARIABD_OPTS}
eend $?
}
stop() {
if [ "${RC_CMD}" = "restart" ] ; then
checkconfig || return 1
fi
ebegin "Stopping ${SVCNAME}"
start-stop-daemon --stop --exec "${MARIABD_BINARY}" \
--pidfile "${MARIABD_PIDFILE}" --quiet
eend $?
}
reload() {
checkconfig || return 1
ebegin "Reloading ${SVCNAME}"
start-stop-daemon --signal HUP \
--exec "${MARIABD_BINARY}" --pidfile "${MARIABD_PIDFILE}"
eend $?
}
Mariadb is handled by the mysql-openrc package already present in the world repo
this last upgrade seems to have again just ignored my instructions to not override my /etc/init.d/ file or even my safe_mysqld file.
It also creates a mysqld user I don't want and messes up the /var/run directory... every time.
BTW - there seems to be a change in #!/usr/bin/openrc-run
I needed to /etc/init.d/service zap once openrc lost track of a serivce that crashes
I find that hard to believe, unless you post your full /etc/pacman.conf.
#
# /etc/pacman.conf
#
# See the pacman.conf(5) manpage for option and repository directives
#
# GENERAL OPTIONS
#
[options]
# The following paths are commented out with their default values listed.
# If you wish to use different paths, uncomment and update the paths.
#RootDir = /
#DBPath = /var/lib/pacman/
#CacheDir = /var/cache/pacman/pkg/
#LogFile = /var/log/pacman.log
#GPGDir = /etc/pacman.d/gnupg/
#HookDir = /etc/pacman.d/hooks/
HoldPkg = pacman glibc
#XferCommand = /usr/bin/curl -C - -f %u > %o
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled
#UseDelta = 0.7
Architecture = auto
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
#IgnorePkg =
IgnorePkg = perl
#IgnoreGroup =
#NoUpgrade =
#NoExtract =
NoExtract = /etc/mysql/my.cnf
NoExtract = /usr/bin/mysqld_safe
NoExtract = /etc/init.d/mariadb
NoExtract = /etc/runlevels/default/mariadb
NoExtract = /usr/lib/sysusers.d/mariadb.conf
NoExtract = /usr/lib/tmpfiles.d/mariadb.conf
NoExtract = /usr/share/vim/vim80/defaults.vim
# Misc options
#UseSyslog
#Color
#TotalDownload
CheckSpace
#VerbosePkgLists
# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.
SigLevel = Required DatabaseOptional
LocalFileSigLevel = Optional
#RemoteFileSigLevel = Required
# NOTE: You must run `pacman-key --init` before first using pacman; the local
# keyring can then be populated with the keys of all official Cromnix
# packagers with `pacman-key --populate archlinux cromnix`.
#
# REPOSITORIES
# - can be defined here or included from another file
# - pacman will search repositories in the order defined here
# - local/custom mirrors can be added here or in separate files
# - repositories listed first will take precedence when packages
# have identical names, regardless of version number
# - URLs will have $repo replaced by the name of the current repo
# - URLs will have $arch replaced by the name of the architecture
#
# Repository entries are of the format:
# [repo-name]
# Server = ServerName
# Include = IncludePath
#
# The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo.
#
# The testing repositories are disabled by default. To enable, uncomment the
# repo name header and Include lines. You can add preferred servers immediately
# after the header, and they will be used before the default mirrors.
[system-testing]
Include = /etc/pacman.d/mirrorlist
[system]
Include = /etc/pacman.d/mirrorlist
[world]
Include = /etc/pacman.d/mirrorlist
#[world-testing]
#Include = /etc/pacman.d/mirrorlist
[galaxy]
Include = /etc/pacman.d/mirrorlist
# If you want to run 32 bit applications on your x86_64 system,
# enable the multilib repositories as required here.
#[multilib-testing]
#Include = /etc/pacman.d/mirrorlist-arch
#[multilib]
#Include = /etc/pacman.d/mirrorlist-arch
# An example of a custom package repository. See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs
#[core]
#Include = /etc/pacman.d/mirrorlist-arch
[extra]
[community]
Include = /etc/pacman.d/mirrorlist-arch
CODE brackets pleaaaaseeee!!!!!!!!
As I suspected, your config is wrong. 'NoExtract' uses relative paths, not absolute, because only a Sith deals in absolutes.
NoExtract = etc/mysql/my.cnf
well the sith aint boure shell scripters...
what is the relative root then?
That is like a non-rooted tarball?
Just remove the leading /
there is no longer a safe_mysqld so this needs an adjustment now.
how do I get the run tmp files to build correctly?
#!/usr/bin/openrc-run
# Distributed under the terms of the GNU General Public License v2
echo "Hello"
#extra_commands="checkconfig"
#extra_started_commands="reload"
: ${MARIABD_CONFDIR:=/etc/mysql}
: ${MARIABD_CONFIG:=${MARIABD_CONFDIR}/my.cnf}
: ${MARIABD_OPTS:='user=maria'}
: ${MARIABD_PIDFILE:=/run/mariadb/${SVCNAME}.pid}
#: ${MARIABD_BINARY:=/usr/bin/mysqld_safe_helper}}
: ${MARIABD_BINARY:=/usr/bin/mysqld}
echo "PIDFILE ${MARIABD_PIDFILE}"
depend() {
use logger dns
if [ "${rc_need+set}" = "set" ] ; then
: # Do nothing, the user has explicitly set rc_need
else
local x warn_addr
for x in $(awk '/^ListenAddress/{ print $2 }' "$MARIABD_CONFIG" 2>/dev/null) ; do
case "${x}" in
0.0.0.0|0.0.0.0:*) ;;
::|\[::\]*) ;;
*) warn_addr="${warn_addr} ${x}" ;;
esac
done
if [ -n "${warn_addr}" ] ; then
need net
ewarn "You are binding an interface in ListenAddress statement in your mariadbd_config!"
ewarn "You must add rc_need=\"net.FOO\" to your /etc/conf.d/mariadbd"
ewarn "where FOO is the interface(s) providing the following address(es):"
ewarn "${warn_addr}"
fi
fi
}
checkconfig() {
if [ ! -d /var/empty ] ; then
mkdir -p /var/empty || return 1
fi
if [ ! -e "${MARIABD_CONFIG}" ] ; then
eerror "You need an ${MARIABD_CONFIG} file to run mariadbd"
eerror "There is a sample file in /usr/share/doc/openmariadb"
return 1
fi
}
start() {
checkconfig || return 1
ebegin "Starting ${SVCNAME}"
echo "PIDFILE ${MARIABD_PIDFILE}"
echo "Command ${MARIABD_BINARY} --pidfile ${MARIABD_PIDFILE} --${MARIABD_OPTS}"
start-stop-daemon --start --background --exec "${MARIABD_BINARY}" --pidfile "${MARIABD_PIDFILE}" --${MARIABD_OPTS}
eend $?
}
stop() {
if [ "${RC_CMD}" = "restart" ] ; then
checkconfig || return 1
fi
ebegin "Stopping ${SVCNAME}"
start-stop-daemon --stop --exec "${MARIABD_BINARY}" \
--pidfile "${MARIABD_PIDFILE}" --quiet
eend $?
}
reload() {
checkconfig || return 1
ebegin "Reloading ${SVCNAME}"
start-stop-daemon --signal HUP \
--exec "${MARIABD_BINARY}" --pidfile "${MARIABD_PIDFILE}"
eend $?
}
There is one thing that keeps cropping up with this. When updates are made the darn /run tmp files are wiped out of the configuration of the system. Can't this be fixed?