2016-11-29 7 views
2

Я хочу, чтобы запустить скрипт у меня есть, когда начать и ищет лучший способ системы, мой путь:, что это лучший способ, чтобы запустить скрипт в момент загрузки на Linux

  • VI/и т.д./Systemd/система/myscript.service

    [Service] 
    Type=simple 
    ExecStart=/usr/bin/myscript 
    CPUSchedulingPolicy=rr 
    CPUSchedulingPrioty=27 
    [Install] 
    WantedBy=multi-user.target graphical.target 
    
  • systemctl daemon-reload; systemctl enable myscript; systemctl start rmyscript

он работает хорошо, но только горе если есть другой и лучший способ.

+0

В среде systemd служба является лучшим вариантом для запуска ваших scritp/программ. Обратите внимание, что вы можете установить другие параметры при запуске службы и добавлении зависимостей. –

ответ

1

Существует несколько способов достижения этого, но вам понадобятся права root для любых следующих. Для того, чтобы получить корень, откройте терминал и выполните команду:

sudo su 

и командная строка изменится на «#», указывая, что терминал сеанс имеет привилегии суперпользователя.

Альтернатива №1. Добавить Стартовый скрипт

Создайте новый скрипт в /etc/init.d/myscript:

vi /etc/init.d/myscript 

(Очевидно, что это не будет называться «MyScript».) В этом сценарии, делать все, что вы хотите сделать. Может быть, просто запустить скрипт, который вы упомянули:

#!/bin/sh 
/path/to/my/script.sh 

сделать его исполняемым:

chmod ugo+x /etc/init.d/myscript 

Настройка системы инициализации для запуска этого скрипта при запуске:

update-rc.d myscript defaults 

Альтернатива 2 #. Добавление команд в /etc/rc.local

vi /etc/rc.local 

с содержанием, как следующее:

# This script is executed at the end of each multiuser runlevel 
/path/to/my/script.sh || exit 1 # Added by me 
exit 0 

Вариант № 3. Добавить Upstart работу

Создать /etc/init/myjob.conf:

vi /etc/init/myjob.conf 

со следующим содержанием:

description "my job" 
start on startup 
task 
exec /path/to/my/script.sh 

КСТАТИ:

Вам не нужно быть суперпользователем, если вы можете изменить ваш crontab (crontab -e) и создать запись примерно такая:

@reboot /path/to/script.sh 

Таким образом, вы можете запускать его как обычного пользователя. @reboot просто означает, что он запускается при запуске компьютера (не обязательно, когда он перезагружен).