假设您的脚本与启动服务器的命令位于/usr/local/sbin/startup并且您想命名我将使用的屏幕启动服务器:
/usr/bin/screen -dmS startup-server /usr/local/sbin/startup
/etc/rc.local中的这个将以 root 身份启动您的服务器!
[root@vm1]$ screen --help
...
-d (-r) Detach the elsewhere running screen (and reattach here)
-m ignore $STY variable, do create a new screen session.
-S sockname Name this session <pid>.sockname instead of <pid>.<tty>.<host>.
...
示例(包括启动脚本 - 而不是屏幕 - 作为不同的用户:
# file: /etc/rc.local
/usr/bin/screen -dmS startup-server1 /usr/local/sbin/startup
/usr/bin/screen -dmS startup-server2 sudo -u git -H /usr/local/sbin/startup
/usr/bin/screen -dmS startup-server3 sudo -u postfix -H /usr/local/sbin/startup
重启...
[root@vm1]$ screen -ls
There are screens on:
3292.startup-server3 (07/24/14 01:25:01) (Detached)
3290.startup-server2 (07/24/14 01:25:01) (Detached)
3287.startup-server1 (07/24/14 01:25:01) (Detached)
3 Sockets in /var/run/screen/S-root.
您可以附加一个屏幕,例如
[root@vm1]$ screen -r startup-server1
为了完整起见,我的演示脚本是这样做的:
[root@vm1]$ cat /usr/local/sbin/startup
#!/bin/bash
while [ 1 = 1 ]; do
sleep 5
echo "five seconds later..."
done
编辑:
也许我没有得到正确的问题。
如果您的脚本不起作用,请记住:
- 该脚本必须是可执行的:chmod +x [path to script]
在命令行中找出 java 二进制文件的位置以及which java并更改您的脚本(如果哪个 java返回,例如/usr/bin/java):
/usr/bin/java -Xms1024m -Xmx2048m -jar FTBServer-1.6.4-965.jar nogui