ฉันไม่สามารถเปิดใช้งานหรือปิดใช้งานบริการผู้ใช้: ไม่สามารถดำเนินการได้: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว


18

ฉันต้องการดีบัก / ทดสอบโปรแกรมใน eclipse ที่ใช้เซิร์ฟเวอร์ Redis ดังนั้นฉันตัดสินใจที่จะเปลี่ยนเซิร์ฟเวอร์เป็นบริการผู้ใช้เพื่อให้มีสิทธิ์ในการใช้งาน สิ่งที่รบกวนฉันคือฉันสามารถเริ่มหรือหยุดบริการ แต่ไม่สามารถเปิด / ปิดใช้งานได้

ข้อผิดพลาดที่ฉันได้รับคือ:

Failed to execute operation: No such file or directory

ต้นฉบับ / usr / lib / systemd / ระบบ:

[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หลังจากย้าย / แก้ไขไฟล์แล้วหรือยัง?
André Borie

คำตอบ:


4

ในกรณีของฉันฉันวางไฟล์ systemd unit ของฉันลงใน/etc/systemd/system/...โฟลเดอร์โดยตรง ย้ายพวกเขาไปที่เดิม/lib/systemd/systemและแก้ไขปัญหาด้วยคำสั่งเปิด / ปิดการใช้งาน systemctl


2
เป็นเวลานานแล้วที่ฉันมีปัญหานี้ แต่ฉันจำได้ว่าสิ่งนี้เป็นวิธีแก้ปัญหา
Folatt

1
ใน mycase ฉันคัดลอกจาก lib ไปยัง ฯลฯ และใช้งานได้
สตาลินจีโน่

21

ปัญหา Symlink

ฉันมีข้อความแสดงข้อผิดพลาดคล้ายกันเมื่อใช้ลิงก์สัญลักษณ์

เห็นได้ชัดว่า systemd ไม่ได้ติดตามลิงก์สัญลักษณ์วิธีแก้ปัญหาคือเพียงคัดลอกหรือย้ายไฟล์

บริการผู้ใช้?

ฉันเชื่อว่าคุณต้องเพิ่ม--userไปยังบรรทัดคำสั่งสำหรับหน่วยในuser/:

sudo systemctl --user enable arkos-redis.service

2
ยังเป็นปัญหา symlink ที่นี่
cweiske

2
น่าสนใจ มันทำตาม symlink เมื่อฉันstartแก้ไขบริการ แต่enableไม่
Michael Mrozek

คุณพูดถูก symlink ไม่ทำงาน ฉันลงเอยด้วยการใช้ลิงก์แทน
Bryce Guinta

1
อยากรู้อยากเห็น ฉันกำลังใช้ symlink เพราะมันช่วยให้ฉันจัดการไฟล์บริการเป็นส่วนหนึ่งของโครงการและมันก็ดีสำหรับการเริ่มและหยุด แต่ไม่ใช่สำหรับการเปิดใช้งาน ข้อ จำกัด ที่แปลกมาก
rosuav

ที่นี่การอภิปรายเริ่มต้นเกี่ยวกับสาเหตุที่อนุญาตหรือไม่
เชื่อมโยง

1

ลอง:

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

ผมมีปัญหาเดียวกัน. หากไม่ได้ผล:

  • sudo strace systemctl enable arkos-redis

ค้นหาความล้มเหลวล่าสุดที่เกิดขึ้น


0

ฉันมีปัญหาเดียวกันกับ Fedora 29

แทนที่: After=network.target
ด้วย: Requires=network.target

มันน่าหงุดหงิดอย่างไม่น่าเชื่อเพราะไฟล์ชัดเจนมี แต่ดูเหมือนไม่มีอะไรต้องการดู ไม่มีความล้มเหลวจาก systemd วิเคราะห์เช่นกัน systemctl --list-unit-filesมันก็แสดงให้เห็นว่าภายใต้ 'เลว'


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.