使用shell脚本在linux中创建服务

使用shell脚本在linux中创建服务

我想在 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”语句),否则将重新启动。

相关内容