当前位置: 首页 > wzjs >正文

设计好的单位网站开发短视频矩阵seo系统源码

设计好的单位网站开发,短视频矩阵seo系统源码,偏门项目网,网站换主机目录 一、什么是守护进程以及如何创建守护进程1. 什么是守护进程?2. 如何创建守护进程? 二、什么是GDB调试以及如何用GDB命令调试C程序1. 什么是GDB?2. 如何用GDB命令调试C程序? 三、外网访问树莓派 一、什么是守护进程以及如何创…

目录

    • 一、什么是守护进程以及如何创建守护进程
      • 1. 什么是守护进程?
      • 2. 如何创建守护进程?
    • 二、什么是GDB调试以及如何用GDB命令调试C程序
      • 1. 什么是GDB?
      • 2. 如何用GDB命令调试C程序?
    • 三、外网访问树莓派

一、什么是守护进程以及如何创建守护进程

1. 什么是守护进程?

守护进程(Daemon Process)是一种特殊的后台进程,它独立于控制终端,并且周期性地执行某种任务或者等待处理特定事件。守护进程通常在系统启动时开始运行,直到系统关闭才结束,它们为系统提供各种服务,例如 Web 服务器、邮件服务器、日志记录等

2. 如何创建守护进程?

编程实现守护进程的主要过程:

  1. 创建子进程并终止父进程:通过 fork() 创建子进程,父进程退出,子进程继续运行。
  2. 创建新的会话:调用 setsid() 创建新的会话,使进程成为会话领导者,从而脱离原来的终端。
  3. 改变工作目录:通常将工作目录更改为根目录 /,避免因原工作目录被卸载而导致的进程终止。
  4. 重设文件权限掩码:调用 umask(0) 设置适当的文件权限掩码,确保守护进程创建的文件具有正确的权限。
  5. 关闭文件描述符:关闭所有不需要的文件描述符,避免资源泄漏。
  6. 重定向标准输入、输出和错误:将标准输入、输出和错误重定向到 /dev/null 或日志文件。
  7. 进入主循环:守护进程进入主循环,周期性地执行任务。

创建一个守护进程的三种方法:
由于阿里云服务器暂时无法登录,所以下面只展示在树莓派上的操作。

  1. 使用 nohup 命令
    在阿里云服务器或树莓派上,可以使用以下命令创建守护进程:
nohup ./your_program > output.log 2>&1 &

在这里插入图片描述

nohup 使程序忽略 SIGHUP 信号,即使终端关闭,程序也会继续运行。
>” 将标准输出重定向到 output.log 文件。
2>&1 将标准错误也重定向到标准输出。
& 将程序放到后台运行。

  1. 使用 fork() 函数
    以下是一个使用 fork() 函数创建守护进程的 C 程序示例:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>void daemonize() {pid_t pid = fork();if (pid < 0) {perror("fork");exit(EXIT_FAILURE);}if (pid > 0) {exit(EXIT_SUCCESS); // 父进程退出}// 创建新会话if (setsid() < 0) {perror("setsid");exit(EXIT_FAILURE);}// 改变工作目录if (chdir("/") < 0) {perror("chdir");exit(EXIT_FAILURE);}// 设置文件权限掩码umask(0);// 再次创建子进程并退出父进程pid = fork();if (pid < 0) {perror("fork");exit(EXIT_FAILURE);}if (pid > 0) {exit(EXIT_SUCCESS); // 父进程退出}// 关闭文件描述符close(STDIN_FILENO);close(STDOUT_FILENO);close(STDERR_FILENO);
}int main() {daemonize();while (1) {sleep(1); // 守护进程的主循环}return 0;
}

在阿里云服务器或树莓派上,编译并运行该程序:

gcc -o daemon_fork daemon_fork.c
./daemon_fork

在这里插入图片描述

  1. 使用 daemon() 函数
    以下是一个使用 daemon() 函数创建守护进程的 C 程序示例:
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>int main() {if (daemon(0, 0) == -1) {perror("daemon");return EXIT_FAILURE;}while (1) {sleep(1); // 守护进程的主循环}return 0;
}

在阿里云服务器或树莓派上,编译并运行该程序:

gcc -o daemon_daemon daemon_daemon.c
./daemon_daemon

在这里插入图片描述

二、什么是GDB调试以及如何用GDB命令调试C程序

1. 什么是GDB?

GDB 全称“GNU symbolic debugger”,从名称上不难看出,它诞生于 GNU 计划(同时诞生的还有 GCC、Emacs 等),是 Linux 下常用的程序调试器。发展至今,GDB 已经迭代了诸多个版本,当下的 GDB 支持调试多种编程语言编写的程序,包括 C、C++、Go、Objective-C、OpenCL、Ada 等。实际场景中,GDB 更常用来调试 C 和 C++ 程序。
总的来说,借助 GDB 调试器可以实现以下几个功能:
程序启动时,可以按照我们自定义的要求运行程序,例如设置参数和环境变量;
可使被调试程序在指定代码处暂停运行,并查看当前程序的运行状态(例如当前变量的值,函数的执行结果等),即支持断点调试;
程序执行过程中,可以改变某个变量的值,还可以改变代码的执行顺序,从而尝试修改程序中出现的逻辑错误。

2. 如何用GDB命令调试C程序?

1. 安装 GDB
在阿里云服务器或树莓派上,可以通过以下命令安装 GDB:

sudo apt-get update
sudo apt-get install gdb

安装完成后,可以通过运行 gdb --version 来验证是否安装成功
在这里插入图片描述

2. 编写和编译 C 程序
设计一个简单的 C 程序 example.c

#include <stdio.h>
int main() {int a = 5;int b = 10;int c = a + b;printf("The result is: %d\n", c);return 0;
}

为了能够使用 GDB 进行调试,需要在编译时加入 -g 选项,这样编译器会在生成的可执行文件中包含调试信息:

gcc -g -o example example.c

这将生成一个名为 example 的可执行文件

3. 使用 GDB 进行调试
有了带调试信息的可执行文件后,就可以使用 GDB 进行调试了。
启动 GDB
在终端中运行以下命令启动 GDB,并加载可执行文件:

gdb example

设置断点
在调试过程中,设置断点是非常重要的步骤。断点可以让程序在执行到某一行时暂停,方便查看和修改变量值。在 GDB 中,可以使用 break 命令设置断点,例如:

break main

这将设置一个断点在 main 函数的入口处。也可以在特定的行号或函数处设置断点,例如:

break example.c:10

运行程序
设置好断点后,可以使用 run 命令运行程序:

run

程序会在遇到断点时暂停,此时可以查看和修改变量的值
查看和修改变量
在程序暂停时,可以使用 print 命令查看变量的值,例如:

print a

如果需要修改变量的值,可以使用 set 命令,例如:

set var a = 20

继续执行程序
在查看和修改变量后,可以使用 continue 命令继续执行程序:

continue

三、外网访问树莓派

  1. 打开端口的防火墙
sudo ufw allow 9623

将9623设为反向代理的端口

  1. 设置SSH配置文件
GatewayPorts yes

然后重启 SSH 服务:

sudo systemctl restart ssh
  1. 通过putty程序ssh连接树莓派
    在这里插入图片描述
  2. 登录树莓派后设置SSH反向代理
ssh -p 22 -qngfNTR [端口号]:localhost:22 [用户名]@[IP]

在这里插入图片描述

  1. 在阿里云服务器上查看监听端口
ss -ntl

在这里插入图片描述
有红框中的端口就说明服务器和树莓派成功连接

  1. 其他用户通过ssh命令连接到树莓派
ssh -p [你绑定的端口号] [树莓派用户]@云服务器地址

在这里插入图片描述
可以看见其他用户也能连接到树莓派上了

http://www.dtcms.com/wzjs/135479.html

相关文章:

  • 嘉兴企业网站建设搜索引擎优化排名
  • wap网站源码下载seo服务合同
  • 网站banner尺寸 横幅企业网站推广方案设计毕业设计
  • 如何建个网站靠谱的seo收费
  • 广州网站建设圣矢seo公司推荐推广平台
  • 优质的聊城做网站网页制作软件哪个好
  • 青岛做网站的公司哪家好一点免费的seo优化工具
  • 网站后台维护怎么做北京网站优化专家
  • 晋安福州网站建设网站推广哪个好
  • wordpress模板建站教程视频承德seo
  • 哪些b2b网站做游戏机比较好深圳最新通告今天
  • 大型网站 网站建设营销推广ppt
  • 公司做网站需要哪些手续公司品牌营销策划
  • 贵州省建设厅的网站今天刚刚发生的新闻
  • 网站如何做淘宝客合肥网站优化排名推广
  • 郑州高端网站建设多少钱黄冈地区免费网站推广平台
  • 软件开发者是指南宁seo网络推广
  • 关键词没有排名的网站怎么做关键词排名优化
  • 做水果苹果大的网站营业推广促销方式有哪些
  • html5 微网站开发站长收录
  • 勘察设计人才网长春seo技术
  • 二次网站开发平台百度人工客服
  • 十大免费建站appseo长尾关键词优化
  • 安卓手机网页视频怎么下载黑河seo
  • 怎么做游戏试玩网站百度下载安装到桌面上
  • wordpress新浪云平台关键词优化的原则
  • 做头像的网站自己的名字桂林网站设计制作
  • 福鼎网站建设培训营销是什么意思
  • 德阳市住房和城乡建设局网站首页页面seo优化
  • 网站建设简单点的滕州seo