User Tools

Site Tools


управление_сервисами_в_linux

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
управление_сервисами_в_linux [2017/11/13 08:14]
val [Система загрузки SysV]
управление_сервисами_в_linux [2026/04/03 07:38] (current)
val [Система загрузки rc.local]
Line 25: Line 25:
   * [[Сигналы]]   * [[Сигналы]]
  
-==== Система загрузки rc.local ====+===== Определение системы загрузки ===== 
 +<​code>​ 
 +$ ps -p 1 
 +</​code>​ 
 + 
 +===== Система загрузки rc.local ====
 + 
 +  * [[Сервис SSH#​Аутентификация с использованием ключей ssh]] 
 +  * [[Управление ядром и модулями в Linux#​Переменные ядра]] net.ipv4.ip_local_port_range
 <​code>​ <​code>​
 # cat /​etc/​rc.local # cat /​etc/​rc.local
 </​code><​code>​ </​code><​code>​
-... +#!/bin/sh 
-/​usr/​bin/​ssh -N -R 200X:​localhost:​22 userX@gate.isp.un &+ 
 +/​usr/​bin/​ssh -N -R 61000+X:​localhost:​22 ​-o ServerAliveInterval=60 -o ExitOnForwardFailure=yes ​userX@gate.isp.un &
  
 exit 0 exit 0
 +</​code><​code>​
 +chmod +x /​etc/​rc.local
 </​code>​ </​code>​
  
-==== Система загрузки SysV ====+ 
 +===== Система загрузки SysV =====
  
   * [[http://​ru.wikipedia.org/​wiki/​Init]]   * [[http://​ru.wikipedia.org/​wiki/​Init]]
   * [[Средства программирования shell#​Примеры использования скриптов sh в системах загрузки]]   * [[Средства программирования shell#​Примеры использования скриптов sh в системах загрузки]]
  
-=== Скрипты запуска/​остановки ===+==== Скрипты запуска/​остановки ​====
 <​code>​ <​code>​
 # cat /​etc/​default/​proftpd # cat /​etc/​default/​proftpd
Line 50: Line 62:
 # /​etc/​init.d/​proftpd stop # /​etc/​init.d/​proftpd stop
  
-# cat /​etc/​init.d/​sshvpn+# cat /​etc/​init.d/​mysshvpn
 </​code><​code>​ </​code><​code>​
 #!/bin/sh #!/bin/sh
  
 ######### CentOS ########## ######### CentOS ##########
-sshvpn ​         ​Start/​Stop the sshvpn ​daemon.+mysshvpn ​         ​Start/​Stop the mysshvpn ​daemon.
 # #
 # chkconfig: 2345 90 60 # chkconfig: 2345 90 60
Line 61: Line 73:
 ######### Debian ########## ######### Debian ##########
 ### BEGIN INIT INFO ### BEGIN INIT INFO
-# Provides: ​            sshvpn+# Provides: ​            mysshvpn
 # Required-Start: ​   $remote_fs $syslog $local_fs $network # Required-Start: ​   $remote_fs $syslog $local_fs $network
 # Required-Stop: ​    ​$remote_fs $syslog $local_fs $network # Required-Stop: ​    ​$remote_fs $syslog $local_fs $network
Line 67: Line 79:
 # Default-Stop: ​     0 1 6 # Default-Stop: ​     0 1 6
  
-# Short-Description: ​   ​sshvpn ​Secure Shell server+# Short-Description: ​   ​mysshvpn ​Secure Shell server
 ### END INIT INFO ### END INIT INFO
  
Line 74: Line 86:
 if [ "​$1"​ = start ] if [ "​$1"​ = start ]
 then then
-        echo Starting ​sshvpn... +        echo Starting ​mysshvpn... 
-        /​usr/​bin/​ssh -N -R 200X:​localhost:​22 userX@gate.isp.un & +        /​usr/​bin/​ssh -N -R 61000+X:​localhost:​22 ​-o ServerAliveInterval=60 -o ExitOnForwardFailure=yes ​userX@gate.isp.un & 
-        echo $! > /var/run/sshvpn.pid+        echo $! > /var/run/mysshvpn.pid
 elif [ "​$1"​ = stop ] elif [ "​$1"​ = stop ]
 then then
-        echo Stopping ​sshvpn... +        echo Stopping ​mysshvpn... 
-        kill -TERM `cat /var/run/sshvpn.pid` +        kill -TERM `cat /var/run/mysshvpn.pid` 
-        rm /var/run/sshvpn.pid+        rm /var/run/mysshvpn.pid
 else else
         echo Usage:         echo Usage:
-        echo '/​etc/​init.d/​sshvpn ​start|stop'​+        echo '/​etc/​init.d/​mysshvpn ​start|stop'​
 fi fi
 </​code>​ </​code>​
  
-=== Управление запуском/​остановкой ===+==== Управление запуском/​остановкой ​====
  
 <​code>​ <​code>​
Line 94: Line 106:
  
 # cd /etc/init.d # cd /etc/init.d
-# ln -s ../init.d/sshvpn ​/etc/rc5.d/S20sshvpn+# ln -s ../init.d/mysshvpn ​/etc/rc5.d/S20mysshvpn
  
-# ln -s ../init.d/sshvpn ​/etc/rc0.d/K20sshvpn +# ln -s ../init.d/mysshvpn ​/etc/rc0.d/K20mysshvpn 
-# ln -s ../init.d/sshvpn ​/etc/rc6.d/K20sshvpn+# ln -s ../init.d/mysshvpn ​/etc/rc6.d/K20mysshvpn
 </​code>​ </​code>​
  
-== Debian/​Ubuntu ==+=== Debian/​Ubuntu ​===
  
   * [[http://​help.ubuntu.ru/​wiki/​создание_скрипта_автозапуска|Создание своего скрипта автозапуска при загрузке компьютера]]   * [[http://​help.ubuntu.ru/​wiki/​создание_скрипта_автозапуска|Создание своего скрипта автозапуска при загрузке компьютера]]
Line 112: Line 124:
 </​code>​ </​code>​
  
-== RHEL/CentOS ==+=== RHEL/​CentOS ​===
  
 [[http://​www.cyberciti.biz/​faq/​rhel5-update-rcd-command/​]] [[http://​www.cyberciti.biz/​faq/​rhel5-update-rcd-command/​]]
Line 119: Line 131:
 # chkconfig --list # chkconfig --list
  
-# chkconfig --del sshd+# chkconfig --add mysshvpn
  
-# chkconfig --list ​sshd+# chkconfig --list ​mysshvpn
  
-# chkconfig ​--add sshd+# chkconfig ​mysshvpn on
  
 +# #chkconfig mysshvpn off
  
-chkconfig sshd on +# #chkconfig --del mysshvpn
- +
-# chkconfig sshd off +
- +
- +
-# chkconfig --level 2 sshd on +
- +
-# chkconfig --level 35 sshd on+
 </​code>​ </​code>​
- +==== Управление ресурсами ==== 
-==== Система загрузки Systemd ====+<​code>​ 
 +# cat /​etc/​init.d/​asterisk 
 +</​code><​code>​ 
 +... 
 +MAXFILES=65536 
 +... 
 +</​code>​ 
 +===== Система загрузки Systemd ​=====
  
   * [[http://​val.bmstu.ru/​unix/​Books/​s4a_latest.pdf|systemd для администраторов]]   * [[http://​val.bmstu.ru/​unix/​Books/​s4a_latest.pdf|systemd для администраторов]]
Line 142: Line 155:
   * [[https://​habrahabr.ru/​company/​centosadmin/​blog/​255845/​|Systemd за пять минут]]   * [[https://​habrahabr.ru/​company/​centosadmin/​blog/​255845/​|Systemd за пять минут]]
   * [[https://​wiki.archlinux.org/​index.php/​systemd|systemd]]   * [[https://​wiki.archlinux.org/​index.php/​systemd|systemd]]
 +
 +==== Управление юнитами Systemd ====
 +
 +  * [[https://​docs.gitea.io/​en-us/​linux-service/​|Run Gitea as Linux service]]
 +  * Сервис SNORT [[Сервис SNORT#​Копирование alert_unified2 в syslog]]
  
 <​code>​ <​code>​
 $ systemctl -a $ systemctl -a
 +$ systemctl list-units
 +$ systemctl --failed
 +$ systemctl reset-failed
 +
 +centos# find /​usr/​lib/​systemd/​system/​
 +debian# find /​lib/​systemd/​system/​
  
-centosls /usr/lib/​systemd/​system/​ +find /etc/default/
-debian# ls /​lib/​systemd/​system/+
  
 $ systemctl status ssh $ systemctl status ssh
Line 158: Line 181:
 # systemctl enable ssh # systemctl enable ssh
  
-# cat /​etc/​systemd/​system/​sshvpn.service+# cat /​etc/​systemd/​system/​mysshvpn.service
 </​code><​code>​ </​code><​code>​
 [Unit] [Unit]
 Description=ssh client vpn daemon Description=ssh client vpn daemon
 After=network.target After=network.target
 +#​StartLimitIntervalSec=60
 +#​StartLimitBurst=3
  
 [Service] [Service]
-ExecStart=/​usr/​bin/​ssh -N -R 200X:​localhost:​22 userX@gate.isp.un+ExecStart=/​usr/​bin/​ssh -N -R 61000+X:​localhost:​22 ​-o ServerAliveInterval=5 -o ServerAliveCountMax=1 -o ExitOnForwardFailure=yes ​userX@gate.isp.un 
 +###​ExecStart=/​usr/​bin/​java -jar /​home/​jenkins/​agent.jar -url http://​server.corp13.un:​8081/​ -secret NNNNNNNNNNNNNNNNNNNN -name gate -workDir "/​home/​jenkins/"​ 
 +###​User=jenkins
 KillMode=process KillMode=process
-Restart=on-failure +Restart=always 
-RestartSec=42s+RestartSec=5s
  
 [Install] [Install]
 WantedBy=multi-user.target WantedBy=multi-user.target
 </​code><​code>​ </​code><​code>​
-# systemctl status ​sshvpn+# systemctl status ​mysshvpn
  
-# systemctl enable ​sshvpn+# systemctl enable ​mysshvpn #--now
  
-# systemctl start sshvpn+# systemctl start mysshvpn
 </​code>​ </​code>​
-==== Система загрузки Upstart ====+ 
 +==== Настройка параметров запуска в Systemd ==== 
 + 
 +<​code>​ 
 +# systemctl edit имясервиса 
 +</​code><​code>​ 
 +[Service] 
 +LimitNOFILE=65536 ​     # nginx, squid 
 +LimitCORE=infinity 
 +TimeoutStartSec=180 ​   # elasticsearch 
 +</​code><​code>​ 
 +# systemctl daemon-reload ​    # не очевидно,​ что нужно 
 + 
 +# systemctl show имясервиса 
 + 
 +# systemctl restart имясервиса 
 + 
 +# systemctl status имясервиса 
 + 
 +# cat /​proc/​NNNNN/​limits 
 +</​code>​ 
 + 
 +==== Systemd Sockets ==== 
 + 
 +  * [[https://​gist.github.com/​drmalex07/​28de61c95b8ba7e5017c|README-setup-socket-activated-systemd-service.md]] 
 + 
 +<​code>​ 
 +# cat /​etc/​systemd/​system/​webd.socket 
 +</​code><​code>​ 
 +[Unit] 
 +Description=Web Socket 
 + 
 +[Socket] 
 +ListenStream=127.0.0.1:​9999 
 +#​ListenStream=0.0.0.0:​80 
 +Accept=yes 
 + 
 +[Install] 
 +WantedBy=sockets.target 
 +</​code><​code>​ 
 +# cat /​etc/​systemd/​system/​webd@.service 
 +</​code><​code>​ 
 +[Unit] 
 +Description=WebD Service 
 +Requires=webd.socket 
 + 
 +[Service] 
 +Type=simple 
 +ExecStart=/​usr/​local/​sbin/​webd %i 
 +StandardInput=socket 
 +StandardError=journal 
 +TimeoutStopSec=5 
 +#​RuntimeMaxSec=10 
 + 
 +[Install] 
 +WantedBy=multi-user.target 
 +</​code><​code>​ 
 +# systemctl start webd.socket 
 + 
 +# curl 127.0.0.1:​9999 
 + 
 +# journalctl -u '​webd@*'​ -n 20 --no-pager 
 +</​code>​ 
 + 
 +==== Systemd Timers ==== 
 + 
 +  * [[Планирование выполнения заданий в Linux#​Systemd timers]] 
 +===== Система загрузки OpenRC ===== 
 + 
 +<​code>​ 
 +# ls /​etc/​init.d/​ 
 +# /​etc/​init.d/​sshd status|start|stop 
 + 
 +# rc-service sshd status|start|stop 
 + 
 +# rc-update add|del sshd default 
 + 
 +# rc-update show 
 + 
 +# openrc 
 +</​code>​ 
 + 
 +===== Система загрузки Upstart ​=====
  
   * [[https://​ru.wikipedia.org/​wiki/​Upstart|Upstart в Википедии]]   * [[https://​ru.wikipedia.org/​wiki/​Upstart|Upstart в Википедии]]
Line 202: Line 311:
 === Пример файла конфигурации для запуска/​остановки сервиса === === Пример файла конфигурации для запуска/​остановки сервиса ===
 <​code>​ <​code>​
-server# cat /etc/init/sshvpn.conf+server# cat /etc/init/mysshvpn.conf
 </​code><​code>​ </​code><​code>​
 description ​    "​OpenSSH tunnel"​ description ​    "​OpenSSH tunnel"​
Line 231: Line 340:
 === Управление запуском/​остановкой === === Управление запуском/​остановкой ===
 <​code>​ <​code>​
-server# echo manual > /etc/init/sshvpn.override+server# echo manual > /etc/init/mysshvpn.override
 </​code>​ </​code>​
  
управление_сервисами_в_linux.1510550085.txt.gz · Last modified: 2017/11/13 08:14 by val