This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
управление_сервисами_в_linux [2021/10/29 14:31] val [Управление лимитами Systemd] |
управление_сервисами_в_linux [2025/10/19 07:56] (current) val [Systemd Sockets] |
||
|---|---|---|---|
| Line 36: | Line 36: | ||
| #!/bin/sh | #!/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 | ||
| Line 84: | Line 84: | ||
| then | then | ||
| echo Starting sshvpn... | echo Starting sshvpn... | ||
| - | /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/sshvpn.pid | ||
| elif [ "$1" = stop ] | elif [ "$1" = stop ] | ||
| Line 132: | Line 132: | ||
| # chkconfig --list sshvpn | # chkconfig --list sshvpn | ||
| - | # chkconfig --del sshvpn | + | # chkconfig sshvpn on |
| + | |||
| + | # #chkconfig sshvpn off | ||
| + | |||
| + | # #chkconfig --del sshvpn | ||
| </code> | </code> | ||
| ==== Управление ресурсами ==== | ==== Управление ресурсами ==== | ||
| Line 149: | Line 153: | ||
| * [[https://wiki.archlinux.org/index.php/systemd|systemd]] | * [[https://wiki.archlinux.org/index.php/systemd|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 list-units | ||
| + | $ systemctl --failed | ||
| + | $ systemctl reset-failed | ||
| centos# find /usr/lib/systemd/system/ | centos# find /usr/lib/systemd/system/ | ||
| Line 174: | Line 183: | ||
| 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] | ||
| Line 186: | Line 199: | ||
| # systemctl status sshvpn | # systemctl status sshvpn | ||
| - | # systemctl enable sshvpn | + | # systemctl enable sshvpn --now |
| - | # systemctl start sshvpn | + | # ###systemctl start sshvpn |
| </code> | </code> | ||
| - | ==== Управление лимитами через Systemd ===== | + | ==== Настройка параметров запуска в Systemd ==== |
| <code> | <code> | ||
| - | # systemctl edit nginx | + | # systemctl edit имясервиса |
| </code><code> | </code><code> | ||
| [Service] | [Service] | ||
| - | LimitNOFILE=65536 | + | LimitNOFILE=65536 # nginx, squid |
| - | LimitNOFILESoft=65536 | + | TimeoutStartSec=180 # elasticsearch |
| </code><code> | </code><code> | ||
| - | # systemctl daemon-reload | + | # systemctl daemon-reload # не очевидно, что нужно |
| - | # systemctl restart nginx | + | # systemctl show имясервиса |
| - | # systemctl status nginx | + | # systemctl restart имясервиса |
| + | |||
| + | # systemctl status имясервиса | ||
| # cat /proc/NNNNN/limits | # cat /proc/NNNNN/limits | ||
| </code> | </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> | ||
| + | |||
| ===== Система загрузки OpenRC ===== | ===== Система загрузки OpenRC ===== | ||