На Amazon S3 , например Linux, у меня есть два сценария под названием start_my_app
и stop_my_app
которые начинаются и остановка навсегда (что , в свою очередь , запускает мое приложение Node.js). Я использую эти сценарии для запуска и остановки приложения Node.js вручную. Все идет нормально.
Моя проблема: я также хочу настроить его так, чтобы start_my_app
он запускался всякий раз, когда система загружается. Я знаю, что мне нужно добавить файл внутрь, init.d
и я знаю, как символически связать его с соответствующим каталогом внутри rc.d
, но я не могу понять, что на самом деле нужно поместить в файл, в который я помещаю init.d
. Я думаю, что это должна быть только одна строка, start_my_app
но это не сработало для меня.
init.d
решение ( здесь ) должно быть предпочтительнееrc.local
решения, потому что последнее - это старый инструмент, который все еще может использоваться только потому, что новый инструмент обратно совместим.Ответы:
В файле, который вы вставили,
/etc/init.d/
вы должны установить его исполняемым с помощью:Благодаря @meetamit, если это не работает, вы должны создать символическую ссылку на
/etc/rc.d/
Обратите внимание, что в последнем Debian это не будет работать, поскольку ваш скрипт должен быть LSB-совместимым (по крайней мере, выполнить следующие действия: запуск, остановка, перезапуск, принудительная перезагрузка и состояние): https: //wiki.debian .org / LSBInitScripts
Как примечание, вы должны поставить абсолютный путь вашего скрипта вместо относительного, это может решить непредвиденные проблемы:
И не забудьте добавить поверх этого файла:
источник
ln
команды) на каталог внутриrc.d
/etc/rc.d
папок, но у меня есть/etc/rcX.d
папки (т.е. /etc/rc0.d , /etc/rc1.d , /etc/rcS.d ), также есть файл /etc/rc.local . Я думаю, что вы должны создать символические ссылки в пользовательской папке, например/etc/rc9.d
или в одной из существующих ... (Ubuntu Server 14.04)Установите crontab для этого
после каждого запуска будет запускаться тестовый скрипт.
источник
@reboot sh $HOME/test.sh
в crontab еще чищеcrontab -l
должны показать,@reboot sh $HOME/test.sh
чтобы подтвердить, что оно действительно установлено.Простой подход - добавить строку в
/etc/rc.local
:или если вы хотите запустить команду как специальный пользователь:
(конечный амперсанд окружает процесс и позволяет rc.local продолжить выполнение)
Если вам нужен полный скрипт инициализации, в дистрибутиве Debian есть файл шаблона, поэтому:
и немного его адаптировать.
источник
stop_my_app
), я бы сделал этоsudo
, не так ли? Кроме того, мне интересно, какова функция конечного амперсанда (?).&
запустить процесс в фоновом режимеinit.d
способа работы (твой ответ был для меня в то время более простым решением) , Этот пост получает много просмотров и голосов, поэтому важно быть точным.Я так делаю в системах Red Hat Linux .
Поместите ваш скрипт
/etc/init.d
, принадлежащий пользователю root и исполняемый файл. В верхней части сценария вы можете указать директивуchkconfig
. Пример, следующий скрипт используется для запуска приложения Java как пользовательский оракул.Название сценария
/etc/init.d/apex
Это говорит о том, что скрипт должен работать на уровнях 3, 4 и 5, а приоритет для запуска / остановки - 99 и 10.
Затем, как пользователь,
root
вы можете использовать,chkconfig
чтобы включить или отключить скрипт при запуске:И вы можете использовать
service start/stop apex
.источник
Введите
cron
с помощьюsudo
:sudo crontab -e
Добавьте команду для запуска при запуске, в этом случае скрипт:
@reboot sh /home/user/test.sh
Сохранить:
Нажмите ESC, затем: x, чтобы сохранить и выйти, или нажмите ESC, затем ZZ (это shift + zz)
Тест Тест Тест :
Запустите тестовый скрипт без cron, чтобы убедиться, что он действительно работает.
Убедитесь, что вы сохранили свою команду в cron, используйте
sudo crontab -e
Перезагрузите сервер, чтобы подтвердить, что все работает
sudo @reboot
источник
sudo
если вы хотите выполнить определенную команду во время запуска с использованием текущего пользователя./tmp
??Просто добавьте строку в ваш crontab.
Убедитесь, что файл исполняемый:
Чтобы отредактировать файл crontab:
Строка, которую вы должны добавить:
Так просто!
источник
# uname -a Linux accton-xp70a0-26-a1 3.11.10-301.fc20.x86_64 #1 SMP Thu Dec 5 14:01:17 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
Другим вариантом является наличие команды @reboot в вашем crontab.
Не каждая версия cron поддерживает это, но если ваш экземпляр основан на Amazon Linux AMI, он будет работать.
источник
Ты можешь это сделать :
затем используйте эту команду
Пожалуйста, смотрите эту страницу на Cyberciti .
источник
Создайте свой собственный исполняемый файл / init
Это не то, что вы хотите, но это весело!
Просто выберите произвольный исполняемый файл, даже сценарий оболочки , и загрузите ядро с параметром командной строки:
В конце загрузки ядро Linux запускает первый исполняемый файл пользовательского пространства по указанному пути.
Несколько проектов предоставляют популярные
init
исполняемые файлы, используемые основными дистрибутивами, например, systemd, и в большинстве дистрибутивов init запускает несколько процессов, используемых при нормальной работе системы.Но мы можем использовать
/init
его для запуска собственных минимальных сценариев, чтобы лучше понять нашу систему.Вот минимальная воспроизводимая настройка: https://github.com/cirosantilli/linux-kernel-module-cheat/tree/f96d4d55c9caa7c0862991025e1291c48c33e3d9/README.md#custom-init
источник
Это простое решение работало для меня на экземпляре Amazon Linux под управлением CentOS. Отредактируйте ваш
/etc/rc.d/rc.local
файл и поместите команду там. В этом файле упоминается, что он будет выполнен после всех других сценариев инициализации. Так что будьте осторожны в этом отношении. Вот как файл выглядит для меня в настоящее время. , Последняя строка - это название моего сценария.источник
Абсолютно самый простой метод, если все, что вы хотите запустить, - это простой скрипт (или что-то еще), если у вас есть графический интерфейс для использования системных> предпочтений, а затем запуска приложений.
просто перейдите к нужному сценарию и начинайте. (сделать исполняемый скрипт)
источник
Для Debian 9 см. Https://askubuntu.com/questions/228304/how-do-i-run-a-script-at-start-up . Это помогло мне. Короткая версия для Debian 9: добавьте команды (от имени root) в /etc/rc.local
Вероятно, /path_to_file/filename.sh должен быть исполняемым (я так думаю).
источник
В Lubuntu мне пришлось столкнуться с противоположной ситуацией. Скайп запускается после загрузки и я нашел в
~/.config/autostart/
файлеskypeforlinux.desktop
. Содержание файла выглядит следующим образом:Удаление этого файла помогло мне.
источник
$ update-rc.d myScript.sh defaults NN
где NN - порядок, в котором он должен выполняться. Например, 99 будет означать, что он будет работать после 98 и до 100.источник
Работа с микросервисами или оболочкой Python 3; используя Ubuntu Server 18.04 (Bionic Beaver) или Ubuntu 19.10 (Eoan Ermine) или Ubuntu 18.10 (Cosmic Cuttlefish), мне всегда нравятся эти шаги, и это тоже работает всегда :
Создание микросервиса с именем p, например, «brain_microservice1.service»:
Внутри этого нового сервиса, в котором вы находитесь:
Дайте разрешения:
Дайте разрешение на исполнение тогда:
Включите затем, это будет делать то всегда запускаться при запуске
Тогда вы можете проверить это;
$ sudo перезагрузится сейчас
Готово = УСПЕХ !!
Это можно сделать с помощью того же основного сценария, чтобы запустить оболочку, отреагировать ... сценарий запуска базы данных ... любой код ОС ... надеюсь, это поможет вам ...
...
источник
Я ссылался на этот блог, всегда хороший выбор
https://blog.xyzio.com/2016/06/14/setting-up-a-golang-website-to-autorun-on-ubuntu-using-systemd/
vim /lib/systemd/system/gosite.service
источник
Вот более простой способ!
Во-первых: написать сценарий оболочки и сохранить его .sh вот пример
этот скрипт отключит внутреннюю клавиатуру при запуске.
Второе: откройте приложение «Настройки запуска приложения»
введите описание изображения здесь
введите описание изображения здесь
Третье: нажмите Добавить. четвертое: в разделе ИМЯ укажите имя. пятое: в разделе команд перейдите к вашему .sh. шестое: отредактируйте свой командный раздел на:
седьмое: нажмите кнопку Добавить. Это оно! Законченный!
Теперь подтвердите, перезагрузив компьютер.
ура!
источник
Безболезненный, самый простой и универсальный метод - просто выполнить его с помощью
~.bash_profile
или~.profile
(если у вас нет файла bash_profile) .Просто добавьте команду выполнения внизу этого файла, и она будет выполнена при запуске системы.
У меня есть этот пример внизу;
~\Desktop\sound_fixer.sh
источник
~/.bash_profile
выполняется, когда пользователь входит в систему, а не при загрузке системы. В первоначальном вопросе целью было запустить сервер приложений Node.js при запуске компьютера. Ваше решение потребует, чтобы пользователь-пользователь сначала вошел в систему до запуска сервера Node.js. И, если какая-то проблема вызывает перезагрузку сервера в одночасье, приложение никогда не вернется к жизни, пока человек не войдет обратно.Для некоторых людей это будет работать:
Вы можете просто добавить следующую команду в Система → Настройки → Запускаемые приложения :
источник