您可以使用以下单元文件作为模板:
[Unit]
Description=A Test Service That Prints the date
After=network.target
[Service]
EnvironmentFile=-/etc/sysconfig/myservice
ExecStart=/usr/bin/bash -c "/usr/bin/date >> /now.txt" $MYSERVICE_ARGS
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
/etc/systemd/system/使用.service文件扩展名将其保存(例如 /etc/systemd/system/myservice.service)
您的应用程序需要的任何环境变量都可以放在 中/etc/sysconfig/myservice,包括创建一个变量来保存您的命令行选项:
MYSERVICE_ARGS=--posix
Run Code Online (Sandbox Code Playgroud)
(如果您使用的命令行选项的变量,然后将变量添加到您的命令ExecStart如下:ExecStart=/usr/local/bin/myservice $MYSERVICE_ARGS)
测试它:
# systemctl start myservice
Run Code Online (Sandbox Code Playgroud)
您现在应该有一个文件/now.txt,每次运行时都附加了日期/时间。
启用它以在启动时启动:
# systemctl enable myservice
Run Code Online (Sandbox Code Playgroud)
它现在应该在联网后自动启动。
更改ExecStart线路以运行您的应用程序。请记住,systemd它不会ExecStart在 shell 中运行,因此,例如,如果您需要重定向,则需要bash -c按照示例运行。此外,不会有$PATH变量,因此使用完整路径。该应用程序将以用户身份运行root。
您可以使用更多选项 - 阅读手册页。此外,在/usr/lib/systemd/system.
| 归档时间: |
|
| 查看次数: |
313 次 |
| 最近记录: |