我正在尝试在 ubuntu 16.04 中启动一项服务。并写了这个.service
文件
[Unit]
Description=Executing during boot
[Service]
Type=forking
ExecStart=/home/lokesh/Documents/script.sh
TimeoutSec=30
Restart=on-failure
RestartSec=30
StartLimitInterval=350
StartLimitBurst=10
[Install]
WantedBy=multi-user.target
Alias=startUp.service
将此服务文件添加到/etc/systemd/system/
这是脚本文件,所以基本上我正在尝试执行一个简单的操作来写入文件
#!/bin/sh
echo "I'm feeling good" >> txt
echo "how are you" >> txt
重启之前我测试了脚本文件,它运行正常,并生成了一个包含一些文本的 txt 文件。然后按照以下步骤操作:
chmod u+x /path/to/script/script.sh
sudo systemctl start startUp.service
sudo systemctl stop startUp.service
sudo systemctl enable startUp.service
但重启后我应该得到一个名为 txt 的新文件,其中包含一些文本。但我无法获取输出。这是因为服务未启动还是服务文件或脚本文件有问题?
问候
答案1
任何在启动时启动的程序、脚本或服务都只具有有限的环境。因此,您必须始终使用完整路径名。
在这种情况下,您需要输入需要创建 txt 的完整路径。因此,按照您的示例:
/主页/lokesh/文档/txt
如果你的服务确实启动了,那么如果在 /root 中找到 txt 文件,我不会感到惊讶