Я установил пакет redis-server
на Ubuntu 14.04 LTS, работающий в Amazon EC2.
ii redis-server 2:2.8.4-2 amd64
ii redis-tools 2:2.8.4-2 amd64
Он не запускался при загрузке. Итак, я выполнил следующие команды, чтобы воссоздать сценарии инициализации:
$ sudo sudo update-rc.d -f redis-server remove
Removing any system startup links for /etc/init.d/redis-server ...
/etc/rc0.d/K20redis-server
/etc/rc1.d/K20redis-server
/etc/rc2.d/S20redis-server
/etc/rc3.d/S20redis-server
/etc/rc4.d/S20redis-server
/etc/rc5.d/S20redis-server
/etc/rc6.d/K20redis-server
$ sudo sudo update-rc.d -f redis-server defaults
Adding system startup for /etc/init.d/redis-server ...
/etc/rc0.d/K20redis-server -> ../init.d/redis-server
/etc/rc1.d/K20redis-server -> ../init.d/redis-server
/etc/rc6.d/K20redis-server -> ../init.d/redis-server
/etc/rc2.d/S20redis-server -> ../init.d/redis-server
/etc/rc3.d/S20redis-server -> ../init.d/redis-server
/etc/rc4.d/S20redis-server -> ../init.d/redis-server
/etc/rc5.d/S20redis-server -> ../init.d/redis-server
Сценарии действительно существуют и исполняемые. Если я запускаю службу вручную, проверьте статус с помощью одного из сценариев:
$ sudo ./S20redis-server status
redis-server is running
Однако после перезагрузки redis-server
не запущен. Я просмотрел /var/log/redis/redis-server.log
, и там есть только сообщения о завершении работы и запуске, ничего, что указывало бы на проблему. Вывод dmesg
также не содержит ошибок. для команды taskkill?
То, что вы наблюдаете, - это «именно то, как это работает» ( см. Раздел «Несколько команд в одной строке» ).
В пакетном файле поведение по умолчанию - чтение и раскрытие переменных по одной строке за раз, если вы используете & для запуска нескольких команд в одной строке, то любые изменения переменных не будут видны, пока выполнение не перейдет к следующей строке.
Если вы хотите, чтобы это работало, вам нужно поместить «однострочник» в пакетный файл, а затем использовать «SETLOCAL EnableDelayedExpansion». Конечно, в этот момент вы можете просто сделать это двумя строками.
Если вы не привязаны к пакетным файлам, в Powershell вы можете сделать это в одной строке без переменных: Stop-Process - Id (Get-Content c: \ temp \ pid.txt)