首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法理解如何在系统启动时自动运行命令

无法理解如何在系统启动时自动运行命令
EN

Ask Ubuntu用户
提问于 2022-08-13 12:48:01
回答 2查看 111关注 0票数 -1

我一直在阅读关于如何在linux上运行@启动脚本的大多数顶级结果。

我一直在经营一个视频游戏的主页,我想自己创造一些东西。

不知道它叫什么。但让我们称它为参考脚本。

我希望能够创建一个脚本,在我的linux服务器更新和/或重新启动时运行某些命令。

它似乎经常这样做(我相信这很好)。

atm我为一个名为Terraria的游戏制作了一个config.txt文件,这个txt文件包含了世界和游戏设置。它还设置了一个规则,当它找不到-said世界时,可以自动创建一个具有特定参数的新世界。

-描述

因此,我使用以下命令创建了一个文件:

代码语言:javascript
复制
touch startup.sh

我在游戏文件所在的文件夹中创建了脚本

这就是在startup.sh文件中编写的内容:

代码语言:javascript
复制
#!/bin/sh
@reboot screen -S Terraria ./TerrariaServer.bin.x86_64 -config serverconfig.txt

当我删除@reboot时,我可以执行命令./startup.sh,它打开一个名为Terraria的屏幕,并使用其配置规则运行游戏。

我找不到一个简单的解释,说明如何在启动时运行命令。

我非常肯定,它归结到适当的搜索,我相信,我寻找的任何地方,我已经写在某处。

EN

回答 2

Ask Ubuntu用户

回答已采纳

发布于 2022-08-13 13:04:34

#!/bin/bash属于bash脚本。@reboot属于crontab。

您可以尝试使用crontab来查看它是否可以运行您想运行的程序。

为了添加一个cron作业,您需要运行crontab -e,然后将您的作业添加到文件的末尾,您需要的行如下所示;

代码语言:javascript
复制
@reboot screen -S Terraria /path/to/the/server/folder/TerrariaServer.bin.x86_64 -config serverconfig.txt
票数 0
EN

Ask Ubuntu用户

发布于 2022-08-13 17:07:15

代码语言:javascript
复制
[Unit]
Description=Terraria Server

[Service]
Type=simple
WorkingDirectory=/home/terraria/
ExecStart=screen -S Terraria ./TerrariaServer.bin.x86_64 -config serverconfig.txt nogui
User=Terraria
Restart=on-failure

[Install]
WantedBy=multi-user.target
  • 将WorkingDirectory更改为所需的内容。我猜到了
  • 我从您的示例中使用的命令。
  • 将其保存为/etc/systemd/system/terraria.service
  • 您可以向其添加诸如套接字之类的内容,以便向服务发送命令。

管制:

代码语言:javascript
复制
sudo systemctl start|stop|restart terraria  # Starts/stops/restarts
sudo systemctl status terraria  # shows the status of the service
sudo journalctl -u terraria -f   # shows the server log

而您遇到问题的部分是:在启动时启用或禁用服务.

代码语言:javascript
复制
sudo systemctl enable terraria.service
sudo systemctl disable terraria.service
票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1423370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档