mirror of
https://github.com/bol-van/zapret.git
synced 2025-04-19 05:22:58 +03:00
move to native systemd. use links , no copy
This commit is contained in:
parent
cd059aefea
commit
73bf37ee8c
@ -118,3 +118,13 @@ v23
|
||||
major init system rewrite
|
||||
openwrt : separate firewall include /etc/firewall.zapret
|
||||
install_easy.sh : easy setup on openwrt, debian, ubuntu, centos, fedora, opensuse
|
||||
|
||||
v24
|
||||
|
||||
separate config from init scripts
|
||||
gzip support in ipset/*.sh and tpws
|
||||
|
||||
v25
|
||||
|
||||
init : move to native systemd units
|
||||
use links to units, init scripts and firewall includes, no more copying
|
||||
|
@ -1,4 +1,4 @@
|
||||
zapret v.24
|
||||
zapret v.25
|
||||
|
||||
Для чего это надо
|
||||
-----------------
|
||||
@ -281,12 +281,12 @@ TPWS_OPT_HTTPS="--split-pos=3"
|
||||
/opt/zapret/install_bin.sh
|
||||
АЛЬТЕРНАТИВА : зайти в tpws,nfq,ip2net,mdig, в каждом выполнить make. Получите динамические бинарики под вашу ось.
|
||||
|
||||
Скопировать скрипт запуска :
|
||||
cp /opt/zapret/init.d/sysv/zapret /etc/init.d
|
||||
|
||||
Настроить параметры согласно разделу "Выбор параметров".
|
||||
|
||||
Принять изменения скрипта в systemd :
|
||||
Создать ссылку на service unit в systemd :
|
||||
ln -fs /opt/zapret/init.d/systemd/zapret.service /lib/systemd/system
|
||||
|
||||
Принять изменения в systemd :
|
||||
systemctl daemon-reload
|
||||
|
||||
Включить автозапуск службы :
|
||||
@ -342,7 +342,22 @@ OpenSUSE
|
||||
Новые OpenSUSE основаны на systemd и менеджере пакетов zypper.
|
||||
|
||||
Установить пакеты :
|
||||
zypper install curl ipset
|
||||
zypper --non-interactive install curl ipset
|
||||
|
||||
Далее все аналогично debian, кроме расположения systemd.
|
||||
В opensuse он находится не в /lib/systemd, а в /usr/lib/systemd.
|
||||
Правильная команда будет :
|
||||
|
||||
ln -fs /opt/zapret/init.d/systemd/zapret.service /usr/lib/systemd/system
|
||||
|
||||
Arch linux
|
||||
----------
|
||||
|
||||
Построен на базе systemd. По умолчанию отсутствует cron.
|
||||
|
||||
Установить пакеты :
|
||||
pacman -Syy
|
||||
pacman --noconfirm -S ipset curl cronie
|
||||
|
||||
Далее все аналогично debian.
|
||||
|
||||
@ -358,7 +373,12 @@ git и curl по умолчанию могут присутствовать, ips
|
||||
|
||||
emerge ipset
|
||||
|
||||
Настраиваем все как в debian, но опуская все, касаемое systemd.
|
||||
Подключаем init скрипт :
|
||||
|
||||
ln -fs /opt/zapret/init.d/sysv/zapret /etc/init.d
|
||||
rc-update add zapret
|
||||
|
||||
Далее все как в debian, исключая все, касаемое systemd.
|
||||
|
||||
Шпаргалка по управлению службой :
|
||||
|
||||
@ -371,7 +391,7 @@ stop : rc-service zapret stop
|
||||
-----------------
|
||||
|
||||
Ты простой юзер ? Не хочешь ни во что вникать, а хочешь нажать и чтобы сразу заработало ?
|
||||
Пользуешься ubuntu, debian , centos , fedora, opensuse ? Тогда этот вариант для тебя.
|
||||
Пользуешься системой на базе systemd ? Тогда этот вариант для тебя.
|
||||
Есть шансы, что оно заработает с минимумом усилий. Запусти терминал и в нем вбивай команды :
|
||||
|
||||
# su
|
||||
@ -395,16 +415,9 @@ stop : rc-service zapret stop
|
||||
|
||||
Для более гибкой настройки перед запуском инсталятора следует выполнить раздел "Выбор параметров".
|
||||
|
||||
Эти скрипты будут работать и на других системах на базе systemd при условии, что
|
||||
systemd собран с поддержкой sysvinit и имеется следующий файл :
|
||||
/lib/systemd/system-generators/systemd-sysv-generator
|
||||
ИЛИ
|
||||
/usr/lib/systemd/system-generators/systemd-sysv-generator
|
||||
К сожалению, некоторые дистрибутивы имеют systemd без sysvinit support (arch linux).
|
||||
А так же есть необходимые программы :
|
||||
ipset
|
||||
curl
|
||||
Их можно установить вручную при помощи менеджера пакетов вашей ОС.
|
||||
Если система на базе systemd, но используется не поддерживаемый инсталятором менеджер пакетов
|
||||
или названия пакетов не соответствуют прописанным в инсталятор, пакеты нужно установить вручную.
|
||||
Требуется : ipset curl cron
|
||||
|
||||
Фаерволлы
|
||||
---------
|
||||
@ -486,8 +499,8 @@ ipset можно выкинуть, если не будем пользовать
|
||||
Запустить автоинсталятор бинариков. Он сам определит рабочую архитектуру и настроит все бинарики.
|
||||
/opt/zapret/install_bin.sh
|
||||
|
||||
Скопировать скрипт запуска :
|
||||
cp /opt/zapret/init.d/openwrt/zapret /etc/init.d
|
||||
Создать ссылку на скрипт запуска :
|
||||
ln -fs /opt/zapret/init.d/openwrt/zapret /etc/init.d
|
||||
|
||||
Настроить параметры согласно разделу "Выбор параметров".
|
||||
|
||||
|
17
init.d/systemd/zapret.service
Normal file
17
init.d/systemd/zapret.service
Normal file
@ -0,0 +1,17 @@
|
||||
[Unit]
|
||||
After=network-online.target
|
||||
Wants=network-online.target
|
||||
|
||||
[Service]
|
||||
Type=forking
|
||||
Restart=no
|
||||
TimeoutSec=30sec
|
||||
IgnoreSIGPIPE=no
|
||||
KillMode=process
|
||||
GuessMainPID=no
|
||||
RemainAfterExit=yes
|
||||
ExecStart=/opt/zapret/init.d/sysv/zapret start
|
||||
ExecStop=/opt/zapret/init.d/sysv/zapret stop
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
136
install_easy.sh
136
install_easy.sh
@ -9,11 +9,12 @@ ZAPRET_CONFIG=$EXEDIR/config
|
||||
|
||||
. "$ZAPRET_CONFIG"
|
||||
|
||||
SYSTEMD_SYSV_GENERATOR=/lib/systemd/system-generators/systemd-sysv-generator
|
||||
SYSTEMD_SYSV_GENERATOR2=/usr$SYSTEMD_SYSV_GENERATOR
|
||||
|
||||
GET_LIST="$EXEDIR/ipset/get_config.sh"
|
||||
GET_LIST_PREFIX=/ipset/get_
|
||||
INIT_SCRIPT=/etc/init.d/zapret
|
||||
|
||||
SYSTEMD_SYSTEM_DIR=/lib/systemd/system
|
||||
[ -d "$SYSTEMD_SYSTEM_DIR" ] || SYSTEMD_SYSTEM_DIR=/usr/lib/systemd/system
|
||||
|
||||
exists()
|
||||
{
|
||||
@ -66,17 +67,12 @@ random()
|
||||
|
||||
check_system()
|
||||
{
|
||||
echo \* checking system ...
|
||||
echo \* checking system
|
||||
|
||||
SYSTEM=""
|
||||
SYSTEMCTL=$(whichq systemctl)
|
||||
|
||||
if [ -x "$SYSTEMCTL" ] ; then
|
||||
[ -x "$SYSTEMD_SYSV_GENERATOR" ] || [ -x "$SYSTEMD_SYSV_GENERATOR2" ] || {
|
||||
echo systemd is present but it does not support sysvinit compatibility
|
||||
echo $SYSTEMD_SYSV_GENERATOR is required
|
||||
exitp 5
|
||||
}
|
||||
SYSTEM=systemd
|
||||
elif [ -f "/etc/openwrt_release" ] && exists opkg && exists uci ; then
|
||||
SYSTEM=openwrt
|
||||
@ -101,7 +97,7 @@ get_bin_arch()
|
||||
|
||||
install_binaries()
|
||||
{
|
||||
echo \* installing binaries ...
|
||||
echo \* installing binaries
|
||||
|
||||
call_install_bin
|
||||
}
|
||||
@ -168,13 +164,14 @@ select_getlist()
|
||||
read A
|
||||
if [ "$A" != 'N' ] && [ "$A" != 'n' ]; then
|
||||
if [ "${MODE%hostlist*}" != "$MODE" ] ; then
|
||||
GETLISTS="get_hostlist.sh"
|
||||
GETLIST_DEF="get_hostlist.sh"
|
||||
local GL_OLD=$GETLIST
|
||||
GETLIST="get_hostlist.sh"
|
||||
[ "$GL_OLD" != "$GET_LIST" ] && write_config_var GETLIST
|
||||
else
|
||||
GETLISTS="get_user.sh get_antizapret.sh get_combined.sh get_reestr.sh"
|
||||
GETLIST_DEF="get_antizapret.sh"
|
||||
ask_list GETLIST "$GETLISTS" "$GETLIST_DEF" && write_config_var GETLIST
|
||||
fi
|
||||
ask_list GETLIST "$GETLISTS" "$GETLIST_DEF" && write_config_var GETLIST
|
||||
return
|
||||
fi
|
||||
fi
|
||||
@ -210,7 +207,7 @@ check_location()
|
||||
{
|
||||
# $1 - copy function
|
||||
|
||||
echo \* checking location ...
|
||||
echo \* checking location
|
||||
|
||||
# use inodes in case something is linked
|
||||
[ -d "$ZAPRET_BASE" ] && [ $(get_dir_inode "$EXEDIR") = $(get_dir_inode "$ZAPRET_BASE") ] || {
|
||||
@ -247,7 +244,7 @@ crontab_add()
|
||||
# $1 - hour min
|
||||
# $2 - hour max
|
||||
[ -x "$GET_LIST" ] && {
|
||||
echo \* adding crontab entry ...
|
||||
echo \* adding crontab entry
|
||||
|
||||
CRONTMP=/tmp/cron.tmp
|
||||
crontab -l >$CRONTMP
|
||||
@ -265,12 +262,13 @@ crontab_add()
|
||||
|
||||
check_prerequisites_linux()
|
||||
{
|
||||
echo \* checking prerequisites ...
|
||||
echo \* checking prerequisites
|
||||
|
||||
if exists ipset && exists curl ; then
|
||||
# arch linux can miss cron
|
||||
if exists ipset && exists curl && exists crontab ; then
|
||||
echo everything is present
|
||||
else
|
||||
echo \* installing prerequisites ...
|
||||
echo \* installing prerequisites
|
||||
|
||||
APTGET=$(whichq apt-get)
|
||||
YUM=$(whichq yum)
|
||||
@ -278,23 +276,23 @@ check_prerequisites_linux()
|
||||
ZYPPER=$(whichq zypper)
|
||||
if [ -x "$APTGET" ] ; then
|
||||
"$APTGET" update
|
||||
"$APTGET" install -y --no-install-recommends ipset curl dnsutils || {
|
||||
"$APTGET" install -y --no-install-recommends ipset curl dnsutils cron || {
|
||||
echo could not install prerequisites
|
||||
exitp 6
|
||||
}
|
||||
elif [ -x "$YUM" ] ; then
|
||||
"$YUM" -y install curl ipset || {
|
||||
"$YUM" -y install curl ipset cronie || {
|
||||
echo could not install prerequisites
|
||||
exitp 6
|
||||
}
|
||||
elif [ -x "$PACMAN" ] ; then
|
||||
"$PACMAN" -Syy
|
||||
"$PACMAN" --noconfirm -S ipset curl || {
|
||||
"$PACMAN" --noconfirm -S ipset curl cronie || {
|
||||
echo could not install prerequisites
|
||||
exitp 6
|
||||
}
|
||||
elif [ -x "$ZYPPER" ] ; then
|
||||
"$ZYPPER" --non-interactive install ipset curl || {
|
||||
"$ZYPPER" --non-interactive install ipset curl cron || {
|
||||
echo could not install prerequisites
|
||||
exitp 6
|
||||
}
|
||||
@ -306,63 +304,43 @@ check_prerequisites_linux()
|
||||
fi
|
||||
}
|
||||
|
||||
install_sysv_init()
|
||||
|
||||
service_install_systemd()
|
||||
{
|
||||
echo \* installing init script ...
|
||||
|
||||
[ -x "$INIT_SCRIPT" ] && "$INIT_SCRIPT" stop
|
||||
|
||||
script_mode=Y
|
||||
[ -f "$INIT_SCRIPT" ] &&
|
||||
{
|
||||
[ $(md5file "$INIT_SCRIPT") = $(md5file "$INIT_SCRIPT_SRC") ] ||
|
||||
{
|
||||
echo $INIT_SCRIPT already exists and differs from $INIT_SCRIPT_SRC
|
||||
echo Y = overwrite with new version
|
||||
echo N = exit
|
||||
echo L = leave current version and continue
|
||||
read script_mode
|
||||
case "${script_mode}" in
|
||||
Y|y|L|l)
|
||||
;;
|
||||
*)
|
||||
echo aborted
|
||||
exitp 3
|
||||
;;
|
||||
esac
|
||||
}
|
||||
}
|
||||
|
||||
if [ "$script_mode" = "Y" ] || [ "$script_mode" = "y" ]; then
|
||||
echo "copying : $INIT_SCRIPT_SRC => $INIT_SCRIPT"
|
||||
cp -f "$INIT_SCRIPT_SRC" "$INIT_SCRIPT"
|
||||
fi
|
||||
}
|
||||
|
||||
register_sysv_init_systemd()
|
||||
{
|
||||
echo \* registering init script ...
|
||||
echo \* installing zapret service
|
||||
|
||||
[ -f "$INIT_SCRIPT" ] && rm -f "$INIT_SCRIPT"
|
||||
ln -fs "$EXEDIR/init.d/systemd/zapret.service" "$SYSTEMD_SYSTEM_DIR"
|
||||
"$SYSTEMCTL" daemon-reload
|
||||
"$SYSTEMCTL" enable zapret || {
|
||||
echo could not register $INIT_SCRIPT with systemd
|
||||
echo could not enable systemd service
|
||||
exitp 20
|
||||
}
|
||||
}
|
||||
|
||||
service_stop_systemd()
|
||||
{
|
||||
echo \* stopping service and unregistering init script
|
||||
echo \* stopping zapret service
|
||||
|
||||
"$SYSTEMCTL" daemon-reload
|
||||
"$SYSTEMCTL" disable zapret
|
||||
"$SYSTEMCTL" stop zapret
|
||||
}
|
||||
|
||||
service_start_systemd()
|
||||
{
|
||||
echo \* starting zapret service
|
||||
|
||||
systemctl start zapret || {
|
||||
echo could not start zapret service
|
||||
exitp 30
|
||||
}
|
||||
}
|
||||
|
||||
download_list()
|
||||
{
|
||||
[ -x "$GET_LIST" ] && {
|
||||
echo \* downloading blocked ip/host list ...
|
||||
echo \* downloading blocked ip/host list
|
||||
|
||||
# can be txt or txt.gz
|
||||
rm -f "$EXEDIR/ipset/zapret-ip.txt"* "$EXEDIR/ipset/zapret-ip-user.txt"* \
|
||||
@ -375,28 +353,16 @@ download_list()
|
||||
}
|
||||
}
|
||||
|
||||
service_start_systemd()
|
||||
{
|
||||
echo \* starting zapret service ...
|
||||
|
||||
systemctl start zapret || {
|
||||
echo could not start zapret service
|
||||
exitp 30
|
||||
}
|
||||
}
|
||||
|
||||
install_systemd()
|
||||
{
|
||||
INIT_SCRIPT_SRC=$EXEDIR/init.d/sysv/zapret
|
||||
INIT_SCRIPT=/etc/init.d/zapret
|
||||
|
||||
check_location copy_all
|
||||
check_prerequisites_linux
|
||||
service_stop_systemd
|
||||
install_binaries
|
||||
ask_config
|
||||
install_sysv_init
|
||||
register_sysv_init_systemd
|
||||
service_install_systemd
|
||||
download_list
|
||||
# desktop system : likely it will be up at daytime
|
||||
crontab_add 9 21
|
||||
@ -428,7 +394,7 @@ check_packages_openwrt()
|
||||
|
||||
check_prerequisites_openwrt()
|
||||
{
|
||||
echo \* checking prerequisites ...
|
||||
echo \* checking prerequisites
|
||||
|
||||
local PKGS="iptables-mod-extra iptables-mod-nfqueue iptables-mod-filter iptables-mod-ipopt ipset curl"
|
||||
local UPD=0
|
||||
@ -437,7 +403,7 @@ check_prerequisites_openwrt()
|
||||
if check_kmod iptable_raw && check_packages_openwrt $PKGS ; then
|
||||
echo everything is present
|
||||
else
|
||||
echo \* installing prerequisites ...
|
||||
echo \* installing prerequisites
|
||||
|
||||
opkg update
|
||||
UPD=1
|
||||
@ -530,7 +496,7 @@ openwrt_fw_section_configure()
|
||||
|
||||
install_openwrt_firewall()
|
||||
{
|
||||
echo \* installing firewall script ...
|
||||
echo \* installing firewall script
|
||||
|
||||
[ -n "MODE" ] || {
|
||||
echo should specify MODE in $ZAPRET_CONFIG
|
||||
@ -543,15 +509,15 @@ install_openwrt_firewall()
|
||||
openwrt_fw_section_del
|
||||
return
|
||||
}
|
||||
echo "copying : $FW_SCRIPT_SRC => $OPENWRT_FW_INCLUDE"
|
||||
cp -f "$FW_SCRIPT_SRC" "$OPENWRT_FW_INCLUDE"
|
||||
echo "linking : $FW_SCRIPT_SRC => $OPENWRT_FW_INCLUDE"
|
||||
ln -fs "$FW_SCRIPT_SRC" "$OPENWRT_FW_INCLUDE"
|
||||
|
||||
openwrt_fw_section_configure
|
||||
}
|
||||
|
||||
restart_openwrt_firewall()
|
||||
{
|
||||
echo \* restarting firewall ...
|
||||
echo \* restarting firewall
|
||||
|
||||
fw3 -q restart || {
|
||||
echo could not restart firewall
|
||||
@ -559,16 +525,18 @@ restart_openwrt_firewall()
|
||||
}
|
||||
}
|
||||
|
||||
register_sysv_init()
|
||||
install_sysv_init()
|
||||
{
|
||||
echo \* registering init script ...
|
||||
|
||||
echo \* installing init script
|
||||
|
||||
[ -x "$INIT_SCRIPT" ] && "$INIT_SCRIPT" stop
|
||||
ln -fs "$INIT_SCRIPT_SRC" "$INIT_SCRIPT"
|
||||
"$INIT_SCRIPT" enable
|
||||
}
|
||||
|
||||
service_start_sysv()
|
||||
{
|
||||
echo \* starting zapret service ...
|
||||
echo \* starting zapret service
|
||||
|
||||
"$INIT_SCRIPT" start || {
|
||||
echo could not start zapret service
|
||||
@ -581,7 +549,6 @@ service_start_sysv()
|
||||
install_openwrt()
|
||||
{
|
||||
INIT_SCRIPT_SRC=$EXEDIR/init.d/openwrt/zapret
|
||||
INIT_SCRIPT=/etc/init.d/zapret
|
||||
FW_SCRIPT_SRC_DIR=$EXEDIR/init.d/openwrt/firewall.zapret
|
||||
OPENWRT_FW_INCLUDE=/etc/firewall.zapret
|
||||
|
||||
@ -590,7 +557,6 @@ install_openwrt()
|
||||
install_binaries
|
||||
ask_config
|
||||
install_sysv_init
|
||||
register_sysv_init
|
||||
download_list
|
||||
# router system : works 24/7. night is the best time
|
||||
crontab_add 0 6
|
||||
|
@ -5,6 +5,8 @@
|
||||
SCRIPT=$(readlink -f "$0")
|
||||
EXEDIR=$(dirname "$SCRIPT")
|
||||
GET_IPLIST_PREFIX=/ipset/get_
|
||||
SYSTEMD_SYSTEM_DIR=/lib/systemd/system
|
||||
[ -d "$SYSTEMD_SYSTEM_DIR" ] || SYSTEMD_SYSTEM_DIR=/usr/lib/systemd/system
|
||||
|
||||
exists()
|
||||
{
|
||||
@ -39,7 +41,7 @@ md5file()
|
||||
|
||||
check_system()
|
||||
{
|
||||
echo \* checking system ...
|
||||
echo \* checking system
|
||||
|
||||
SYSTEM=""
|
||||
SYSTEMCTL=$(whichq systemctl)
|
||||
@ -56,44 +58,9 @@ check_system()
|
||||
}
|
||||
|
||||
|
||||
service_stop_systemd()
|
||||
{
|
||||
echo \* stopping service and unregistering init script
|
||||
|
||||
"$SYSTEMCTL" disable zapret
|
||||
"$SYSTEMCTL" stop zapret
|
||||
}
|
||||
|
||||
remove_sysv_init()
|
||||
{
|
||||
echo \* removing init script ...
|
||||
|
||||
script_mode=Y
|
||||
[ -f "$INIT_SCRIPT" ] &&
|
||||
{
|
||||
[ $(md5file "$INIT_SCRIPT") = $(md5file "$INIT_SCRIPT_SRC") ] ||
|
||||
{
|
||||
echo $INIT_SCRIPT already exists and differs from $INIT_SCRIPT_SRC
|
||||
echo Y = remove it
|
||||
echo L = leave it
|
||||
read script_mode
|
||||
}
|
||||
if [ "$script_mode" = "Y" ] || [ "$script_mode" = "y" ]; then
|
||||
rm -vf $INIT_SCRIPT
|
||||
fi
|
||||
}
|
||||
}
|
||||
|
||||
cleanup_systemd()
|
||||
{
|
||||
echo \* systemd cleanup ...
|
||||
|
||||
"$SYSTEMCTL" daemon-reload
|
||||
}
|
||||
|
||||
crontab_del()
|
||||
{
|
||||
echo \* removing crontab entry ...
|
||||
echo \* removing crontab entry
|
||||
|
||||
CRONTMP=/tmp/cron.tmp
|
||||
crontab -l >$CRONTMP
|
||||
@ -108,19 +75,39 @@ crontab_del()
|
||||
}
|
||||
|
||||
|
||||
service_stop_systemd()
|
||||
{
|
||||
echo \* stopping zapret service
|
||||
|
||||
"$SYSTEMCTL" daemon-reload
|
||||
"$SYSTEMCTL" disable zapret
|
||||
"$SYSTEMCTL" stop zapret
|
||||
}
|
||||
|
||||
service_remove_systemd()
|
||||
{
|
||||
echo \* removing zapret service
|
||||
|
||||
rm -f "$SYSTEMD_SYSTEM_DIR/zapret.service"
|
||||
"$SYSTEMCTL" daemon-reload
|
||||
}
|
||||
|
||||
|
||||
remove_systemd()
|
||||
{
|
||||
INIT_SCRIPT_SRC=$EXEDIR/init.d/sysv/zapret
|
||||
INIT_SCRIPT=/etc/init.d/zapret
|
||||
|
||||
service_stop_systemd
|
||||
remove_sysv_init
|
||||
cleanup_systemd
|
||||
service_remove_systemd
|
||||
crontab_del
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
openwrt_fw_section_find()
|
||||
{
|
||||
# echoes section number
|
||||
@ -150,7 +137,7 @@ openwrt_fw_section_del()
|
||||
|
||||
remove_openwrt_firewall()
|
||||
{
|
||||
echo \* removing firewall script ...
|
||||
echo \* removing firewall script
|
||||
|
||||
openwrt_fw_section_del
|
||||
[ -f "$OPENWRT_FW_INCLUDE" ] && rm -f "$OPENWRT_FW_INCLUDE"
|
||||
@ -158,7 +145,7 @@ remove_openwrt_firewall()
|
||||
|
||||
restart_openwrt_firewall()
|
||||
{
|
||||
echo \* restarting firewall ...
|
||||
echo \* restarting firewall
|
||||
|
||||
fw3 -q restart || {
|
||||
echo could not restart firewall
|
||||
@ -169,7 +156,7 @@ restart_openwrt_firewall()
|
||||
|
||||
service_remove_sysv()
|
||||
{
|
||||
echo \* removing zapret service ...
|
||||
echo \* removing zapret service
|
||||
|
||||
[ -x "$INIT_SCRIPT" ] && {
|
||||
"$INIT_SCRIPT" disable
|
||||
|
Loading…
x
Reference in New Issue
Block a user