为python脚本创建启动服务,以便在Arch Linux中以root身份运行

时间:2016-09-10 03:40:47

标签: python linux root startup

我有一个python脚本,我想在以root身份启动时运行。我相信我需要将其添加为服务文件,但我不知道它是否具有root权限。这就是我的服务文件。除非在root中,否则python文件不会运行。

$(document).ready(function () {

        $("#txtuname").keypress(function (e) {

            var validExp = /^[0-9a-z]+$/gi;

            if (validExp.test(e.key)) {
                $("#errmsg").html("");
                return true;
            }
            else {
                $("#errmsg").html("Number and letters Only");

                return false;
            }
        });
    });

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

让它发挥作用。从我的python脚本中删除了根检查后,一切正常,我还从服务文件中删除了Type=simple部分。在这两件事之后,它运作良好。

我删除的根检查部分是。

from os import getenv
user = getenv("SUDO_USER")
if user is None:
    print ("This program needs to run as root")
    exit(0)

,服务文件现在看起来像这样

[Unit]
Description= Description here

[Service]
ExecStart=/usr/bin/python /home/script.py
StandardOutput=null

[Install]
WantedBy=multi-user.target
Alias=script.service

我仍然不明白为什么我需要取出根检查,程序在我使用sudo python script.py时运行正常。由于某些原因,当使用systemctl运行脚本时,它将无法通过根检查。

答案 1 :(得分:0)

Systemd以root身份运行多用户服务,所以我不知道你需要什么帮助。