我创建了以下服务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用户和组后,该服务将不起作用,并且我得到以下信息:请参见附件图像
                  就记录到/var/log/amos.log的消息而言,成功案例和失败案例之间有什么区别(如果有)?
                
                
                  
                    —
                    sourcejedi 
                    
                  
                
              
                  另外,该配置是奇怪的,因为它
                
                  
                    —
                    sourcejedi 
                    
                  
                
              /var/log是root拥有的。我认为您想使用/var/log/amos/由amos拥有的目录。
                
                  我将按照提及的方式创建并返回结果
                
                
                  
                    —
                    -itprguy 
                    
                  
                
              