ฉันสร้างบริการต่อไปนี้ amos.service และจำเป็นต้องเรียกใช้เป็น amos (สมาชิกของกลุ่ม amos)
[Unit]
Description=AMOS Service
After=network.target
[Service]
User=amos
Group=amos
Type=simple
WorkingDirectory=/usr/share/amos
ExecStart=/usr/share/amos/amos_service.sh start
ExecStop=/usr/share/amos/amos_service.sh stop
Restart=on-failure
[Install]
WantedBy=multi-user.target
สิทธิ์ทั้งหมดได้รับการตั้งค่า/usr/share/amos
เป็นamos:amos
amos_service.sh มีดังนี้:
#!/bin/bash
CUDIR=$(dirname "$0")
cd /usr/share/amos
start() {
exec /usr/share/amos/run_amos.sh >> /var/log/amos.log 2>&1
}
stop() {
exec pkill java
}
case $1 in
start|stop) "$1" ;;
esac
cd "$CURDIR"
เมื่อฉันเรียกใช้บริการครั้งแรกโดยไม่มีการแก้ไขใด ๆ กับไดเรกทอรี, ความหมาย, เป็นของ root, และ amos.service ที่ไม่มีพารามิเตอร์ User not Group, ทุกอย่างทำงานได้ดีมาก!
เมื่อฉันเปลี่ยนการอนุญาตไดเรกทอรีเป็น amos: amos และเพิ่ม amos.service ผู้ใช้ & กลุ่ม serive จะไม่ทำงานและฉันได้รับสิ่งต่อไปนี้: ดูภาพที่แนบมา
/var/log
เป็นเจ้าของโดย root ฉันคิดว่าคุณต้องการใช้ไดเรกทอรี/var/log/amos/
ที่คุณสร้างขึ้นโดย amos