사용자 서비스를 활성화 또는 비활성화 할 수 없습니다 : 작업을 실행하지 못했습니다 : 해당 파일 또는 디렉토리가 없습니다


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

시스템 상태 :

�� 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파일을 이동 / 편집 한 후에 실행 했습니까 ?
André Borie

답변:


4

필자의 경우 시스템 단위 파일을 /etc/systemd/system/...폴더 아래에 직접 배치했습니다 . /lib/systemd/system대신 그것들을 옮겨서 systemctl enable / disable 명령과 관련된 문제를 해결했습니다.


2
이 문제가 발생한 지 오랜 시간이 지났지 만 해결책이라는 것을 기억합니다.
Folatt

1
내 경우에는 lib에서 etc로 복사하여 작동했습니다.
Stalin Gino

21

Symlink 문제?

심볼릭 링크를 사용할 때 비슷한 오류 메시지가 나타납니다.

분명히 systemd는 심볼릭 링크를 따르지 않으며 솔루션은 단순히 파일을 복사하거나 이동하는 것입니다.

사용자 서비스?

나는 당신이 --user유닛에 대한 명령 줄에 추가해야한다고 생각합니다 user/:

sudo systemctl --user enable arkos-redis.service

2
여기서도 심볼릭 링크 문제였습니다.
cweiske

2
흥미 롭군 내가 start서비스를 받았을 때 심볼릭 링크를 따랐 지만 enable하지 않았다
Michael Mrozek

당신은 맞습니다. symlink가 작동하지 않았습니다. 대신 하드 링크를 사용했습니다.
Bryce Guinta

1
궁금한. 서비스 파일을 프로젝트의 일부로 git 관리 할 수 ​​있기 때문에 symlink를 사용하고 있으며 시작 및 중지에는 적합하지만 활성화에는 적합하지 않습니다. 매우 이상한 한계.
rosuav

다음은 symlink 허용 여부에 대한 설명입니다. bugzilla.redhat.com/show_bug.cgi?id=955379#c14
jgomo3

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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.