我当前的服务和 Shell 脚本
我有一个名为的 systemd 服务文件myservice.service
。该服务在启动时启动。该服务启动 shell 脚本/usr/bin/myscript.sh
,如下面的部分所示[Service]
:
...
[Service]
Type=forking
ExecStart=/usr/bin/myscript.sh
PIDFile=/dev/shm/myscript.pid
...
脚本内容如下:
#!/bin/sh
/usr/bin/script-python.py > /dev/null &
echo $! > /dev/shm/myscript.pid
shell 脚本myscript.sh
启动 Python 脚本:script-python.py
。通过重定向,> /dev/null
的标准输出script-python.py
被发送到/dev/null
,因此丢失。
更改为使用 Service->StandardOutput=null
在StandardOutput 的 systemd 文档中我读到了以下句子:
null将标准输出连接到 /dev/null,即写入其中的所有内容都将丢失。
因此,我考虑对我的文件执行以下更改:
myservice.service
变为(添加StandardOutput=null
):
...
[Service]
Type=forking
ExecStart=/usr/bin/myscript.sh
PIDFile=/dev/shm/myscript.pid
StandardOutput=null
...
myscript.sh
变为(删除>/dev/null
):
#!/bin/sh
/usr/bin/script-python.py &
echo $! > /dev/shm/myscript.pid
我的问题
我的问题是:如果我进行上述修改,结果与我现在的情况完全相同:所有输出都script-python.py
丢失了?没有任何区别吗?