gpt4 book ai didi

linux - screen 不是从 rc.local 开始的

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:39:17 24 4
gpt4 key购买 nike

我遇到一个问题,我无法使用 rc.local 文件在启动时启动 screen session 。我正在启动的特定 screen 是针对 minecraft 服务器的插口。

这是我的 rc.local 文件:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

/home/pi/Documents/bootlog.sh
/home/spigot1_12/startspigot.sh
exit 0

这是 startspigot.sh 脚本(使用 chmod u+x):

#!/bin/bash

cd /home/spigot1_12

boot=$(date)

echo "Starting spigot server in screen \"minecraft\" @ $boot " >> /home/pi/Documents/minecraftlog


screen -S minecraft java -Xms512M -Xmx1008M -jar /home/spigot1_12/spigot-1.12.jar nogui

minecraftlog 文件会在每次启动时更新,因此脚本会运行。

当我运行命令“sudo sh startspigot.sh”时,一切正常。 screen 启动并更新 minecraftlog 文件。我可以使用“sudo screen -ls”再次找到 screen

但是,在启动时,“sudo screen -ls”和“screen -ls”都不会返回套接字。

这可能是什么原因造成的?仅有的两个用户是“pi”和 root。

提前致谢!

最佳答案

以当前用户身份在新的分离 screen 中启动脚本(rc.local = root):

screen -dmS <session name> <command> , 例子:

screen -dmS screenName bash /home/user/run.sh


从 rc.local 启动脚本作为 user :

runuser -l user -c 'screen -dmS screenName bash /home/user/run.sh'

关于linux - screen 不是从 rc.local 开始的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44660130/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com