屏幕不是从 rc.local 开始
Screen not starting from rc.local
我遇到一个问题,我无法使用 rc.local 文件在启动时启动屏幕会话。我正在启动的特定屏幕是用于 spigot 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" 时,一切正常。屏幕启动并更新 minecraftlog 文件。我可以用 "sudo screen -ls"
再次找到屏幕
但是,在启动时,"sudo screen -ls" 和 "screen -ls" return 都没有套接字。
这可能是什么原因造成的?仅有的两个用户是 "pi" 和 root.
提前致谢!
运行 分离模式下的屏幕(当您没有活动终端时,如 rc.local 或 crontab):
screen -dm -S <session name> <command>
-d -m Start screen in "detached" mode
-S When creating a new session, this option can be used to specify a meaningful name for the session.
以当前用户身份在新的分离屏幕中启动脚本(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'
我遇到一个问题,我无法使用 rc.local 文件在启动时启动屏幕会话。我正在启动的特定屏幕是用于 spigot 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" 时,一切正常。屏幕启动并更新 minecraftlog 文件。我可以用 "sudo screen -ls"
再次找到屏幕但是,在启动时,"sudo screen -ls" 和 "screen -ls" return 都没有套接字。
这可能是什么原因造成的?仅有的两个用户是 "pi" 和 root.
提前致谢!
运行 分离模式下的屏幕(当您没有活动终端时,如 rc.local 或 crontab):
screen -dm -S <session name> <command>
-d -m Start screen in "detached" mode
-S When creating a new session, this option can be used to specify a meaningful name for the session.
以当前用户身份在新的分离屏幕中启动脚本(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'