Не можу ввімкнути або вимкнути службу користувача: Не вдалося виконати операцію: Немає такого файлу чи каталогу


18

Я хочу налагодити / протестувати програму в затемненні, яка використовує сервер Redis, тому я вирішив перетворити сервер на службу користувача, щоб мати привілей запускати його. Мене хвилює те, що я можу запустити або зупинити послугу, але не вмикати / вимикати її.

Я отримую помилку:

Failed to execute operation: No such file or directory

Оригінал / usr / lib / systemd / system:

[Unit]
Description=Advanced key-value store
After=network.target

[Service]
User=arkos
ExecStart=/usr/bin/redis-server /etc/arkos/arkos-redis.conf
ExecStop=/usr/bin/redis-cli shutdown

[Install]
WantedBy=multi-user.target

Відредаговано та переміщено до / usr / lib / systemd / user:

[Unit]
Description=Advanced key-value store

[Service]
ExecStart=/usr/bin/redis-server /etc/arkos/arkos-redis.conf
ExecStop=/usr/bin/redis-cli shutdown

[Install]
WantedBy=default.target

Статус Systemctl:

�� arkos-redis.service - Advanced key-value store
   Loaded: loaded (/usr/lib/systemd/user/arkos-redis.service; disabled; vendor preset: enabled)
   Active: active (running) since Tue 2015-08-25 09:19:25 UTC; 1min 55s ago
  Process: 644 ExecStop=/usr/bin/redis-cli shutdown (code=exited, status=1/FAILURE)
 Main PID: 736 (redis-server)
   CGroup: /user.slice/user-1000.slice/user@1000.service/arkos-redis.service
           ������736 /usr/bin/redis-server *:0                        

Aug 25 09:19:25 arkos-vagrant redis-server[736]: |    `-._`-._        _.-'_.-'    |
Aug 25 09:19:25 arkos-vagrant redis-server[736]: `-._    `-._`-.__.-'_.-'    _.-'
Aug 25 09:19:25 arkos-vagrant redis-server[736]: `-._    `-.__.-'    _.-'
Aug 25 09:19:25 arkos-vagrant redis-server[736]: `-._        _.-'
Aug 25 09:19:25 arkos-vagrant redis-server[736]: `-.__.-'
Aug 25 09:19:25 arkos-vagrant redis-server[736]: 736:M 25 Aug 09:19:25.471 # Server started, Redis version 3.0.3
Aug 25 09:19:25 arkos-vagrant redis-server[736]: 736:M 25 Aug 09:19:25.472 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
Aug 25 09:19:25 arkos-vagrant redis-server[736]: 736:M 25 Aug 09:19:25.472 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
Aug 25 09:19:25 arkos-vagrant redis-server[736]: 736:M 25 Aug 09:19:25.472 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
Aug 25 09:19:25 arkos-vagrant redis-server[736]: 736:M 25 Aug 09:19:25.472 * The server is now ready to accept connections at /tmp/arkos-redis.sock

Journalctl:

Aug 25 09:19:25 arkos-vagrant redis-server[736]: 736:M 25 Aug 09:19:25.470 # You requested maxclients of 10000 requiring at least 10032 max file descrip
Aug 25 09:19:25 arkos-vagrant redis-server[736]: 736:M 25 Aug 09:19:25.470 # Redis can't set maximum open files to 10032 because of OS error: Operation 
Aug 25 09:19:25 arkos-vagrant redis-server[736]: 736:M 25 Aug 09:19:25.470 # Current maximum open files is 4096. maxclients has been reduced to 4064 to 
Aug 25 09:19:25 arkos-vagrant redis-server[736]: _._
Aug 25 09:19:25 arkos-vagrant redis-server[736]: _.-``__ ''-._
Aug 25 09:19:25 arkos-vagrant redis-server[736]: _.-``    `.  `_.  ''-._           Redis 3.0.3 (00000000/0) 64 bit
Aug 25 09:19:25 arkos-vagrant redis-server[736]: .-`` .-```.  ```\/    _.,_ ''-._
Aug 25 09:19:25 arkos-vagrant redis-server[736]: (    '      ,       .-`  | `,    )     Running in standalone mode
Aug 25 09:19:25 arkos-vagrant redis-server[736]: |`-._`-...-` __...-.``-._|'` _.-'|     Port: 0
Aug 25 09:19:25 arkos-vagrant redis-server[736]: |    `-._   `._    /     _.-'    |     PID: 736
Aug 25 09:19:25 arkos-vagrant redis-server[736]: `-._    `-._  `-./  _.-'    _.-'
Aug 25 09:19:25 arkos-vagrant redis-server[736]: |`-._`-._    `-.__.-'    _.-'_.-'|
Aug 25 09:19:25 arkos-vagrant redis-server[736]: |    `-._`-._        _.-'_.-'    |           http://redis.io
Aug 25 09:19:25 arkos-vagrant redis-server[736]: `-._    `-._`-.__.-'_.-'    _.-'
Aug 25 09:19:25 arkos-vagrant redis-server[736]: |`-._`-._    `-.__.-'    _.-'_.-'|
Aug 25 09:19:25 arkos-vagrant redis-server[736]: |    `-._`-._        _.-'_.-'    |
Aug 25 09:19:25 arkos-vagrant redis-server[736]: `-._    `-._`-.__.-'_.-'    _.-'
Aug 25 09:19:25 arkos-vagrant redis-server[736]: `-._    `-.__.-'    _.-'
Aug 25 09:19:25 arkos-vagrant redis-server[736]: `-._        _.-'
Aug 25 09:19:25 arkos-vagrant redis-server[736]: `-.__.-'
Aug 25 09:19:25 arkos-vagrant redis-server[736]: 736:M 25 Aug 09:19:25.471 # Server started, Redis version 3.0.3
Aug 25 09:19:25 arkos-vagrant redis-server[736]: 736:M 25 Aug 09:19:25.472 # WARNING overcommit_memory is set to 0! Background save may fail under low m
Aug 25 09:19:25 arkos-vagrant redis-server[736]: 736:M 25 Aug 09:19:25.472 # WARNING you have Transparent Huge Pages (THP) support enabled in your kerne
Aug 25 09:19:25 arkos-vagrant redis-server[736]: 736:M 25 Aug 09:19:25.472 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sy
Aug 25 09:19:25 arkos-vagrant redis-server[736]: 736:M 25 Aug 09:19:25.472 * The server is now ready to accept connections at /tmp/arkos-redis.sock

Ви бігли systemctl daemon-reloadпісля переміщення / редагування файлів?
Андре Борі

Відповіді:


4

У моєму випадку я розміщував свої файли системного блоку безпосередньо під /etc/systemd/system/...папками. Перемістив їх /lib/systemd/systemзамість цього, і це вирішило проблему з командами systemctl включення / відключення.


2
Минуло давно, як у мене виникла ця проблема, але я пам’ятаю щось подібне як рішення.
Фолатт

1
у моєму справі я скопіював з lib на тощо, і це спрацювало
Сталін Джино

21

Проблема Symlink?

У мене було подібне повідомлення про помилку при використанні символічних посилань.

Мабуть, systemd не дотримується символічних посилань, рішення - просто скопіювати або перемістити файл.

Обслуговування користувачів?

Я вважаю, що вам потрібно додати --userдо командного рядка для підрозділів у user/:

sudo systemctl --user enable arkos-redis.service

2
Тут також була проблема з посиланнями.
cweiske

2
Цікаво. Коли я startредагував службу, enableвін
перейшов

Ти маєш рацію, що посилання не працювало. Я замість цього використовував жорстке посилання.
Брайс Гінта

1
Цікавий. Я використовую symlink, тому що він дозволяє мені керувати файлом служби службою Git як частиною свого проекту, і це добре для запуску та зупинки, але не для включення. Дуже дивне обмеження.
rosuav

Тут розпочинається дискусія про те, чому дозволити чи не
посилатись

1

Спробуйте:

  • sudo touch /etc/init.d/arkos-redis

У мене була така ж проблема. Якщо це не працює:

  • sudo strace systemctl enable arkos-redis

Шукайте, де трапляється останній збій.


0

У мене був такий самий випуск у Fedora 29.

Замінити: After=network.target
З: Requires=network.target

Це неймовірно засмучує, оскільки файл явно є, але нічого, здається, не хоче бачити. Немає жодних збоїв у системного аналізу. Це просто показано як "погано" під systemctl --list-unit-files.


-1

Отримала цю помилку на Redhat, коли файл одиниці був порожнім

Cannot send after transport endpoint shutdown
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.