87 lines
2.4 KiB
Plaintext
87 lines
2.4 KiB
Plaintext
#!/sbin/openrc-run
|
|
|
|
service_name="${RC_SVCNAME#seaweedfs.}"
|
|
description="SeaweedFS ${service_name} service"
|
|
|
|
command="/usr/bin/weed"
|
|
command_user="${SEAWEEDFS_USER:-seaweedfs}:${SEAWEEDFS_GROUP:-seaweedfs}"
|
|
command_background="yes"
|
|
pidfile="/run/seaweedfs/${RC_SVCNAME}.pid"
|
|
output_log="${SEAWEEDFS_LOG:-/var/log/seaweedfs/${RC_SVCNAME}.log}"
|
|
error_log="${SEAWEEDFS_ERRLOG:-/var/log/seaweedfs/${RC_SVCNAME}.log}"
|
|
|
|
build_command_args() {
|
|
command_args="$service_name"
|
|
data_dir=""
|
|
cache_dir=""
|
|
|
|
case "$service_name" in
|
|
admin)
|
|
data_dir="${SEAWEEDFS_DATA_DIR:-/var/lib/seaweedfs/admin}"
|
|
command_args="$command_args -master=${SEAWEEDFS_MASTER:-localhost:9333} -dataDir=${data_dir}"
|
|
;;
|
|
filer)
|
|
data_dir="${SEAWEEDFS_DATA_DIR:-/var/lib/seaweedfs/filer}"
|
|
command_args="$command_args -master=${SEAWEEDFS_MASTER:-localhost:9333} -defaultStoreDir=${data_dir}"
|
|
;;
|
|
master)
|
|
data_dir="${SEAWEEDFS_DATA_DIR:-/var/lib/seaweedfs/master}"
|
|
command_args="$command_args -mdir=${data_dir} -peers=${SEAWEEDFS_PEERS:-none}"
|
|
;;
|
|
s3)
|
|
command_args="$command_args -filer=${SEAWEEDFS_FILER:-localhost:8888}"
|
|
;;
|
|
sftp)
|
|
command_args="$command_args -filer=${SEAWEEDFS_FILER:-localhost:8888}"
|
|
;;
|
|
volume)
|
|
data_dir="${SEAWEEDFS_DATA_DIR:-/var/lib/seaweedfs/volume}"
|
|
command_args="$command_args -dir=${data_dir} -max=${SEAWEEDFS_VOLUME_MAX:-0} -master=${SEAWEEDFS_MASTER:-localhost:9333}"
|
|
;;
|
|
webdav)
|
|
cache_dir="${SEAWEEDFS_CACHE_DIR:-/var/cache/seaweedfs/webdav}"
|
|
command_args="$command_args -filer=${SEAWEEDFS_FILER:-localhost:8888} -cacheDir=${cache_dir}"
|
|
;;
|
|
worker)
|
|
data_dir="${SEAWEEDFS_DATA_DIR:-/var/lib/seaweedfs/worker}"
|
|
command_args="$command_args -admin=${SEAWEEDFS_ADMIN:-localhost:23646} -workingDir=${data_dir}"
|
|
;;
|
|
esac
|
|
|
|
command_args="$command_args ${SEAWEEDFS_OPTS:-}"
|
|
}
|
|
|
|
build_command_args
|
|
|
|
depend() {
|
|
need net
|
|
case "$service_name" in
|
|
volume|filer|admin)
|
|
after seaweedfs.master
|
|
;;
|
|
s3|webdav|sftp)
|
|
after seaweedfs.filer
|
|
;;
|
|
worker)
|
|
after seaweedfs.admin
|
|
;;
|
|
esac
|
|
}
|
|
|
|
start_pre() {
|
|
checkpath -d -m 0755 -o "${SEAWEEDFS_USER:-seaweedfs}:${SEAWEEDFS_GROUP:-seaweedfs}" \
|
|
/run/seaweedfs \
|
|
/var/log/seaweedfs \
|
|
/var/lib/seaweedfs
|
|
|
|
if [ -n "$data_dir" ]; then
|
|
checkpath -d -m 0750 -o "${SEAWEEDFS_USER:-seaweedfs}:${SEAWEEDFS_GROUP:-seaweedfs}" \
|
|
"$data_dir"
|
|
fi
|
|
|
|
if [ -n "$cache_dir" ]; then
|
|
checkpath -d -m 0750 -o "${SEAWEEDFS_USER:-seaweedfs}:${SEAWEEDFS_GROUP:-seaweedfs}" \
|
|
"$cache_dir"
|
|
fi
|
|
}
|