systemd执行python脚本来挂载NFS驱动程序不起作用

时间:2017-10-24 13:23:10

标签: python linux mount systemd nfs

我为自动检测安装编写了一个systemd脚本和python脚本。

系统脚本:

[Unit]
Description=TAD_Client - TAD WebService
After=network.target
[Service]
User=root
Type=forking
ExecStart=/data/.services/autoconfig.sh start
ExecReload=/data/.services/autoconfig.sh restart
ExecStop=/data/.services/autoconfig.sh stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target

Shell脚本(部分):

export SHELL=/bin/bash
case "$1" in
"start" )
    echo "configuration service start"
    exec "/usr/bin/python" /data/.services/AutoConfiguration.py run &
;;
"stop" )
    echo "configuration service stop"
    exec "/usr/bin/python" /data/.services/AutoConfiguration.py stop
;;
"restart" )
    echo "restart configuration service"
    exec "/usr/bin/python" /data/.services/AutoConfiguration.py stop
    exec "/usr/bin/python" /data/.services/AutoConfiguration.py run &
;;

Python脚本(部分):

def mount_peu_server(self):
    mount_command = 'mount -t nfs ' + server_ip.addr + ':/mnt /mnt'
    p = subprocess.Popen(mount_command, stdout=subprocess.PIPE)
    out, err = p.communicate()
    self.log_error(out)
    self.log_error(err)

当我使用systemd将脚本作为服务启动时,mount命令不起作用,但如果我直接执行python脚本文件,则mount命令可以成功执行。

我检查了输出和错误输出,子进程没有返回任何内容。我认为这可能是一个特权问题,但是这个服务是由root用户运行的,不再需要任何特权。

0 个答案:

没有答案