我想在 Linux 中创建一个服务,就像在 Windows 中一样。我可以借助脚本启动或停止它。该服务必须启动一个与之相关的一些依赖项的游戏应用程序。
基本上,我想要执行一个在 Linux 中创建一个服务的脚本,该服务基本上会启动一个游戏应用程序(启动也是通过脚本完成的),所以就像服务必须启动一个脚本一样。
服务目的:我希望该服务能够在应用程序崩溃时自动重新启动它。知道可以通过服务实现应用程序的自动重启
请帮助我,我是 Linux 新手 :(
答案1
我感觉你之所以只提到“服务”,是因为在 Windows 上可以将服务配置为在崩溃时自动重启。我甚至认为,在 Windows 上让任意“游戏应用程序”以服务形式运行并不容易,因为服务运行时的权限有限。
如果你需要一个脚本,当应用程序以非零错误代码退出(即崩溃时)时自动重新启动应用程序,请检查Anycorn 在 stackoverflow 上对类似问题的回答。非常简单,不涉及任何服务。
如果您需要分步说明,请按照以下步骤操作:
在你的主文件夹中创建一个名为 bin 的目录:
mkdir ~/bin
在该目录中创建一个脚本“startgame”:
touch ~/bin/startgame
在文本编辑器中打开它:
gedit ~/bin/startgame
输入以下文本:
#!/bin/bash
while [ 1 ]; do /path/to/game/executable && break; done
保存文件;
在其上设置可执行位:
chmod +x ~/bin/startgame
在终端中输入以下代码来执行脚本
startgame
以上所有内容均可在没有终端的情况下实现 - 例如使用 Nautilus 创建文件夹、创建文件、使其可执行;创建桌面快捷方式等。
如果您对脚本的工作原理感兴趣:
while [ 1 ]; do ... done
是一个无限循环
/path/to/game/executable
启动应用程序并等待它完成(显然,您需要将其更改为应用程序的实际路径)
command1 && command2
执行命令1,然后执行命令2除非command1 以零返回代码终止(表示成功)。也就是说,只有当程序无错误终止时,循环才会停止(“break”语句),否则将重新启动。