Ответы пользователя по тегу Ubuntu
  • Как в crontab ubuntu перезапускать сервис?

    password22
    @password22 Автор вопроса
    В моем случае пришлось сделать вот что.

    Чтобы перезапускать сайт на asp.net по таймеру пришлось создавать отдельно таймер + сервис + скрипт перезапуска.

    То есть в итоге должно быть:
    1. site.service -сам сервис запуска сайта ​
    2. siteRestart.service - сервис, ссылающийся на скрипт с перезапуском
    3. siteRestart.timer - таймер для сервиса перезапуска
    4. siteRestart.sh - скрипт с перезапуском


    site.service
    [Unit]
    Description=Example .NET Web API App running on Ubuntu
    
    [Service]
    WorkingDirectory=/var/www/helloapp
    ExecStart=/usr/bin/dotnet /var/www/helloapp/helloapp.dll
    Restart=always
    # Restart service after 10 seconds if the dotnet service crashes:
    RestartSec=10
    KillSignal=SIGINT
    SyslogIdentifier=dotnet-example
    User=www-data
    Environment=ASPNETCORE_ENVIRONMENT=Production
    Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
    
    [Install]
    WantedBy=multi-user.target


    siteRestart.service
    [Unit]
    Description=siteRestartService
    
    [Service]
    Type=simple
    ExecStart=/usr/local/bin/siteRestart.sh
    
    [Install]
    WantedBy=multi-user.target


    siteRestart.timer
    [Unit]
    Description=RestartSiteDaily
    
    [Timer]
    OnCalendar=daily
    Unit=siteRestart.service
    Persistent-true
    
    [Install]
    WantedBy=multi-user.target


    siteRestart.sh
    #!/bin/bash
    systemctl restart site.service


    далее

    sudo chmod 744 /usr/local/bin/siteRestart.sh
    sudo chmod 644 /etc/systemd/system/siteRestart.service

    sudo systemctl daemon-reload

    sudo systemctl start siteRestart.service siteRestart.timer

    sudo systemctl enable siteRestart.service siteRestart.timer

    sudo systemctl status siteRestart.service siteRestart.timer

    Только так всё заработало!
    Ответ написан
    Комментировать