Как написано на странице проекта wget, в wget версии 1.16.1 были добавлены защищенные протоколы TLSv1_1
и TLSv1_2
. Ваш wget 1.15 его не поддерживает.
Ресурсы:
С помощью systemd вы сможете запускать скрипт в качестве демона, создав простой юнит. Существует множество различных опций , которые вы можете добавить, но это настолько просто, насколько это возможно.
Допустим, у вас есть скрипт /usr/bin/mydaemon
.
#!/bin/sh
while true; do
date;
sleep 60;
done
Не забудьте sudo chmod +x /usr/bin/mydaemon
.
Вы создаете подразделение /etc/systemd/system/mydaemon.service
.
[Unit]
Description=My daemon
[Service]
ExecStart=/usr/bin/mydaemon
Restart=on-failure
[Install]
WantedBy=multi-user.target
Чтобы запустить демона, которого вы запускаете
systemctl start mydaemon.service
Чтобы начать при загрузке, включите его
systemctl enable mydaemon.service
Если в системе на основе systemd, которой сегодня является большинство дистрибутивов Linux, это не совсем внешний инструмент. Минусом будет то, что это не будет работать везде.
Вероятно, я что-то здесь упускаю; почему именно nohup
не подходит? Конечно, одного недостаточно, но дополнить его кажется несложным делом.
#!/bin/bash
if [ "$1" = "DAEMON" ]; then
# is this necessary? Add other signals at will (TTIN TTOU INT STOP TSTP)
trap '' INT
cd /tmp
shift
### daemonized section ######
for i in $( seq 1 10 ); do
date
sleep 5
done
#### end of daemonized section ####
exit 0
fi
export PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/sbin:/usr/local/bin
umask 022
# You can add nice and ionice before nohup but they might not be installed
nohup setsid $0 DAEMON $* 2>/var/log/mydaemon.err >/var/log/mydaemon.log &
Насколько я вижу:
stdin
все равно умирает в конце родительского скрипта init
(илиsystemd
)У меня сильное чувство, что я упускаю очевидное. Понизьте голос, но, пожалуйста, скажите мне, что это:-)
Команда Linux screen
, содержащаяся в большинстве дистрибутивов, может демонизировать сценарий оболочки. Я использую его часто. Вот краткий пример запуска, просмотра и выхода из сеанса отсоединенного экрана...
# screen -dmS Session_Name bash -c "while true; do date; sleep 60; done"
# screen -ls
There are screens on:
8534.Session_Name (04/04/2018 08:46:27 PM) (Detached)
# screen -S Session_Name -X quit