我是 Linux 和服务器的新手。我有一个喜欢在开机时启动的程序。
在文件夹中执行程序没有问题。尝试从安装文件夹之外执行程序会产生一些错误,例如未找到配置文件、未找到语言文件夹等。
22:06:24> Error: there was an error loading languages. Please check your language folder.
22:06:24> Loading configuration.
22:06:24> ENOENT: no such file or directory, open 'config.default.json'
22:06:24> Error: config.default.json is broken or missing. Shutting down.
我喜欢使用类似
[Service]
ExecStart=/home/xxx/yyy/zzz/startkmr1
但它不起作用。
[Service]
ExecStart=/home/xxx/yyy/zzz/./startkmr1
也不起作用。
我喜欢从启动时将该程序作为服务运行。
如果我在 startkmr1 目录中并执行./startkmr1
,它就会起作用。非常感谢任何帮助。
答案1
当您有一个在工作目录中查找配置、数据或库文件的可执行文件,并且您想将其作为服务运行时,您可以使用指令在服务文件中设置工作目录WorkingDirectory
。
您可以在以下位置找到有关此指令和其他指令的信息systemd.service
手册页。