You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
1.7 KiB
68 lines
1.7 KiB
# --- SDE-COPYRIGHT-NOTE-BEGIN --- |
|
# This copyright note is auto-generated by ./scripts/Create-CopyPatch. |
|
# |
|
# Filename: package/.../runit/rocknet_runit.sh |
|
# Copyright (C) 2004 - 2006 The T2 SDE Project |
|
# |
|
# More information can be found in the files COPYING and README. |
|
# |
|
# This program is free software; you can redistribute it and/or modify |
|
# it under the terms of the GNU General Public License as published by |
|
# the Free Software Foundation; version 2 of the License. A copy of the |
|
# GNU General Public License can be found in the file COPYING. |
|
# --- SDE-COPYRIGHT-NOTE-END --- |
|
export CANUSESERVICE=1 |
|
|
|
service_create() { |
|
local service_name=$1 runstring="$2" finishstring="$3" |
|
|
|
mkdir -p $rocknet_tmp_base/$service_name/log |
|
|
|
# ./run |
|
cat <<-EOT > $rocknet_tmp_base/$service_name/run |
|
#!/bin/sh |
|
exec 2>&1 |
|
|
|
$runstring |
|
EOT |
|
|
|
# ./log/run |
|
cat <<-EOT > $rocknet_tmp_base/$service_name/log/run |
|
#!/bin/sh |
|
exec 2>&1 |
|
|
|
if [ ! -d /var/log/$service_name ]; then |
|
mkdir -p /var/log/$service_name |
|
chown log /var/log/$service_name |
|
fi |
|
exec chpst -ulog svlogd -tt /var/log/$service_name |
|
EOT |
|
|
|
# ./finish |
|
if [ "$finishstring" ]; then |
|
cat <<-EOT > $rocknet_tmp_base/$service_name/finish |
|
#!/bin/sh |
|
exec 2>&1 |
|
|
|
$finishstring |
|
EOT |
|
chmod +x $rocknet_tmp_base/$service_name/finish |
|
fi |
|
|
|
chmod +x $rocknet_tmp_base/$service_name/{,log/}run |
|
ln -nfs $rocknet_tmp_base/$service_name/ /service/$service_name |
|
} |
|
|
|
service_destroy() { |
|
local service_name=$1 x= |
|
|
|
for x in . log; do |
|
if [ -d /service/$service_name/$x/supervise ]; then |
|
runsvctrl d /service/$service_name/$x |
|
svwaitdown /service/$service_name/$x |
|
fi |
|
done |
|
|
|
rm -f /service/$service_name |
|
rm -rf $rocknet_tmp_base/$service_name/ |
|
}
|
|
|