您好,欢迎来到创立网络工作室官方网站!ZJJCL.CN
新闻动态
您现在的位置:首页 > 技术文摘
解决不能自动开机启动websocket的问题方案!
来源:创立工作室 作者:冯军 发布时间:2024-06-04 10:18:37 阅读 248 次

这几天需要做一个项目,用到了websocket,开始尝试了很多方式都不能启动,通过几个小时的不断测试,发现了解决问题的办法!

如果你想在每次开机时自动运行一个名为start_linux.sh的脚本,你可以按照以下步骤进行设置:

方法一:使用rc.local

1. 打开终端,输入以下命令进入rc.local文件:

sudo nano /etc/rc.local

2. 在文件中找到"exit 0"一行,在这行之前添加以下内容:

# 运行start_linux.sh脚本

/path/to/start_linux.sh

请确保将"/path/to/start_linux.sh"替换为实际的脚本路径。

3. 按Ctrl + X保存文件并退出。

4. 重新启动计算机,脚本将自动在开机时运行。

方法二:使用cron

1. 打开终端,输入以下命令进入crontab文件:

crontab -e

2. 如果是第一次使用cron,会要求选择一个编辑器,选择你喜欢的编辑器。

3. 在文件末尾添加以下内容:

@reboot /path/to/start_linux.sh

请确保将"/path/to/start_linux.sh"替换为实际的脚本路径。

4. 按Ctrl + X保存文件并退出。

5. 重新启动计算机,脚本将自动在开机时运行。

请注意,以上方法适用于基于Linux的系统,如Ubuntu、Debian等。如果你使用的是其他操作系统,请参考其它方式进行设置。另外,确保你有足够的权限来编辑这些文件。

其他答案

设置每次开机自动运行start_linux.sh可以通过修改启动程序的方式实现。以下是在Linux系统中实现此功能的几种方法:

方法一:使用/etc/rc.local文件

1. 打开终端,并使用sudo访问/root文件夹中的/etc/rc.local文件:sudo nano /etc/rc.local

2. 在文件的末尾添加以下命令来运行start_linux.sh脚本:

/path/to/start_linux.sh &

注意将"/path/to/start_linux.sh"替换为实际的脚本路径。

3. 保存文件并退出。

方法二:使用crontab

1. 打开终端,并使用crontab命令编辑cron定时任务列表:crontab -e

2. 在打开的文件中添加以下行来运行start_linux.sh脚本:

@reboot /path/to/start_linux.sh

注意将"/path/to/start_linux.sh"替换为实际的脚本路径。

3. 保存文件并退出。

方法三:使用systemd

1. 打开终端,并使用sudo权限编辑一个新的systemd服务单元文件:sudo nano /etc/systemd/system/start_linux.service

2. 在文件中添加以下内容:

[Unit]

Description=Start Linux Script

After=network.target

[Service]

ExecStart=/path/to/start_linux.sh

[Install]

WantedBy=default.target

注意将"/path/to/start_linux.sh"替换为实际的脚本路径。

3. 保存文件并退出。

4. 运行以下命令来启用和运行新的systemd服务单元文件:

sudo systemctl enable start_linux.service

sudo systemctl start start_linux.service

这些方法中,你可以选择其中一种适合你的系统和需求的方法来实现每次开机自动运行start_linux.sh脚本。

最后分享一下我的经验:

第一步:

etc/rc.d

 进入这个目录后,创建一个启动脚本文件

websocket.sh

然后脚本文件内容

#!/bin/sh
# chkconfig: 2345 10 90

# websocket
php /你的存储目录/wwwroot/page/think websocket start

然后进入系统任务目录挂在任务crontab

crontab -e

进入后按一下 insert键进入编辑状态

在以下面一行加入启动脚本命令

@reboot /etc/rc.d/websocket.sh

最后ESC,:wq 保存退出,reboot重启服务器查看是否启动成功