我目前正在为我们的项目使用RHEL 7.0。我有一个嵌入式应用程序,想要在启动时运行。我有一个相同的exe文件。我尝试使用systemctl命令,但没有帮助。我也尝试编辑inittab文件,但这也无济于事。我还尝试添加rc.local文件并编辑rc.d以添加rc.local的执行,但它表示无法修改该文件。(我尝试此操作时处于sudo模式)。
我希望在启动时启动该应用程序,而不要求用户登录。另外,我们应将exe保留在文件系统中的什么位置,以便在启动时将其检测到。有人可以指导我如何实现这一目标吗?
您可以使用以下单位文件作为模板:
[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
/etc/systemd/system/
使用.service
文件扩展名将其保存在其中(例如/etc/systemd/system/myservice.service
)
您的应用程序所需的任何环境变量都可以放在中/etc/sysconfig/myservice
,包括创建一个变量来保存您的命令行选项:
MYSERVICE_ARGS=--posix
(如果您使用的命令行选项的变量,然后将变量添加到您的命令ExecStart
如下:ExecStart=/usr/local/bin/myservice $MYSERVICE_ARGS
)
用以下方法进行测试:
# systemctl start myservice
现在,您应该具有一个文件/now.txt
,该文件应在每次运行时附加日期/时间。
使它能够在启动时使用以下命令启动:
# systemctl enable myservice
现在,它应该会在联网后自动启动。
更改该ExecStart
行以运行您的应用程序。请记住,systemd
它不是ExecStart
在Shell中运行,因此,例如,如果您需要重定向,则需要bash -c
按照示例运行。同样,将没有$PATH
变量,因此使用完整路径。该应用程序将以user身份运行root
。
您可以使用更多选项-阅读手册页。另外,在中浏览系统的单位文件/usr/lib/systemd/system
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句