Я не могу включить или отключить службу пользователя: не удалось выполнить операцию: нет такого файла или каталога

18

Я хочу отладить / протестировать программу в eclipse, которая использует сервер 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
Folatt
источник
Вы бегали systemctl daemon-reloadпосле перемещения / редактирования файлов?
Андре Бори

Ответы:

4

В моем случае я размещал файлы модуля systemd прямо в /etc/systemd/system/...папках. /lib/systemd/systemВместо этого они были перемещены, и это решило проблему с командами systemctl enable / disable.

Alex
источник
2
Прошло много времени с тех пор, как у меня была эта проблема, но я помню, что-то вроде этого было решением.
Фолатт
1
в моем случае я скопировал из lib в etc и это сработало
Сталин Джино
21

Проблема с символической ссылкой?

У меня было похожее сообщение об ошибке при использовании символических ссылок.

Очевидно, systemd не следует по символическим ссылкам, решение состоит в том, чтобы просто скопировать или переместить файл.

Пользовательский сервис?

Я считаю, что вам нужно добавить --userв командную строку для модулей в user/:

sudo systemctl --user enable arkos-redis.service
Бенуа Бланшон
источник
2
Была также проблема символической ссылки здесь.
cweiske
2
Интересный. Когда я startредактировал сервис, он следовал по символической ссылке , но enableне сделал этого
Майкл Мрозек
Вы правы, ссылка не работает. Вместо этого я использовал жесткую ссылку.
Брайс Гуинта
1
Любопытно. Я использую символическую ссылку, потому что она позволяет мне git-управлять служебным файлом как частью его проекта, и это хорошо для запуска и остановки, но не для включения. Очень странное ограничение.
Розав
Здесь начинается обсуждение того, почему разрешать или запрещать использование символических ссылок: bugzilla.redhat.com/show_bug.cgi?id=955379#c14
запрещать использование jgomo3
1

Пытаться:

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

У меня такая же проблема. Если это не сработает:

  • sudo strace systemctl enable arkos-redis

Ищите, где происходит последний сбой.

TJR
источник
0

У меня была такая же проблема на Fedora 29.

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

Это невероятно расстраивает, потому что файл явно там, но, кажется, ничто не хочет его видеть. Также нет ошибок в анализе systemd. Это просто показывает, как «плохо» под systemctl --list-unit-files.

user3559338
источник
-1

Получил эту ошибку на Redhat, когда файл модуля был пуст

Cannot send after transport endpoint shutdown
Бен ДеМотт
источник