debian系统程序自动运行

1.debian系统root权限下如何修改ip地址?

识别网络接口名称

bash 复制代码
ip a
# 或者使用
ls /sys/class/net
bash 复制代码
root@A16272:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute
       valid_lft forever preferred_lft forever
2: bond0: <BROADCAST,MULTICAST,MASTER> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 32:e5:54:ed:22:41 brd ff:ff:ff:ff:ff:ff
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 24:4e:7b:6c:80:1c brd ff:ff:ff:ff:ff:ff
    altname end0
    inet 192.168.10.1/24 brd 192.168.10.255 scope global eth0:0
       valid_lft forever preferred_lft forever
    inet 192.168.137.2/24 brd 192.168.137.255 scope global eth0:1
       valid_lft forever preferred_lft forever
    inet6 fe80::264e:7bff:fe6c:801c/64 scope link
       valid_lft forever preferred_lft forever
4: canfd1: <NOARP> mtu 16 qdisc noop state DOWN group default qlen 10
    link/can
5: canfd2: <NOARP> mtu 16 qdisc noop state DOWN group default qlen 10
    link/can
bash 复制代码
方法一:永久修改(编辑 /etc/network/interfaces)

```bash
cp /etc/network/interfaces /etc/network/interfaces.bak

在 root 下执行以下命令,看看哪些网络服务是激活的:

bash 复制代码
bash
# 查看 ifupdown (传统方式) 是否在运行
systemctl status networking

# 查看 NetworkManager 是否在运行
systemctl status NetworkManager

# 查看 systemd-networkd 是否在运行
systemctl status systemd-networkd
bash 复制代码
 备份当前配置(好习惯)
bash
cp /etc/systemd/network/00-eth0.network /etc/systemd/network/00-eth0.network.bak
2️⃣ 编辑配置文件
bash
nano /etc/systemd/network/00-eth0.network
3️⃣ 替换为以下内容
ini
[Match]
Name=eth0

[Network]
# 禁用 DHCP
DHCP=no
# 新网关(请确认你的网络中网关确实是 192.168.1.1)
Gateway=192.168.1.1
# DNS 保持不变,也可自行修改
DNS=223.5.5.5
DNS=223.6.6.6

[Address]
# 只保留一个 IP
Address=192.168.1.103/24
bash 复制代码
重启 systemd-networkd
bash
systemctl restart systemd-networkd
6️⃣ 验证新 IP
bash
ip a show eth0
你应该只看到 192.168.1.103,之前的两个旧 IP 消失

2.我想运行这个文件夹/data/DrillJumboControl-V3.0/bin/下的go_build_DrillJumboControl_V3_0_main程序,在本debian系统上电后自动运行,告诉我如何做

复制代码
```bash
第一步:准备工作
首先,检查一下你的程序是否具有可执行权限。如果 ls -l 的输出中没有 x,就用下面的命令加上。

bash
# 查看文件权限
ls -l /data/DrillJumboControl-V3.0/bin/go_build_DrillJumboControl_V3_0_main

# 如果没有权限,执行下面的命令添加可执行权限
chmod +x /data/DrillJumboControl-V3.0/bin/go_build_DrillJumboControl_V3_0_main
⚙️ 第二步:创建 Systemd 服务
我们来创建一个专属的服务配置文件。

创建并编辑服务文件
使用 nano 编辑器创建一个名为 drill-jumbo-control.service 的新文件。

bash
nano /etc/systemd/system/drill-jumbo-control.service
编写服务配置
用你的实际情况替换 your_username 后,把下面的内容粘贴进去。

conf
[Unit]
Description=Drill Jumbo Control Service          # 服务描述
After=network.target                             # 确保在网络服务启动后再启动
StartLimitIntervalSec=0                          # 禁用启动频率限制

[Service]
Type=simple                                      # 服务类型为前台进程
User=root                                        # 以 root 用户运行
Group=root                                       # 以 root 用户组运行
WorkingDirectory=/data/DrillJumboControl-V3.0/   # 关键!请设置为程序所在目录
ExecStart=/data/DrillJumboControl-V3.0/bin/go_build_DrillJumboControl_V3_0_main
Restart=always                                   # 总是自动重启(非常稳健)
RestartSec=5                                     # 崩溃后等待5秒再重启
# 日志输出重定向(可选)
StandardOutput=journal                           # 输出到 systemd 日志
StandardError=journal                            # 错误也写入 systemd 日志

[Install]
WantedBy=multi-user.target                       # 多用户模式下启动(常规场景)
bash 复制代码
 第三步:启动并启用服务
保存文件(在 nano 中按 Ctrl+X,然后按 Y,最后按 Enter)后,依次执行以下命令。

bash
# 1. 重新加载 systemd,让它识别我们的新服务
systemctl daemon-reload

# 2. 立即启动服务
systemctl start drill-jumbo-control

# 3. 将服务设置为开机自动启动
systemctl enable drill-jumbo-control
bash 复制代码
第四步:验证与日志查看
检查服务状态

bash
systemctl status drill-jumbo-control
如果一切正常,你会看到状态是 active (running),并且输出中不会有错误信息。

查看实时日志
如果状态不对,可以通过日志来排查问题:

bash
journalctl -u drill-jumbo-control -f
bash 复制代码
 重载并启用服务
bash
# 重新加载 systemd 配置
systemctl daemon-reload

# 立即启动服务
systemctl start drill-jumbo-control

# 设置开机自启
systemctl enable drill-jumbo-control
✅ 验证服务状态
bash
systemctl status drill-jumbo-control
如果显示 active (running),说明已成功运行。

📋 查看实时日志(可选)
bash
journalctl -u drill-jumbo-control -f
按 Ctrl+C 退出日志查看。

3.修复.so路径缺失

bash 复制代码
添加库路径到 systemd 服务
执行以下命令编辑服务文件:

bash
systemctl edit --full drill-jumbo-control
找到 [Service] 段,添加一行 Environment,指定库路径为 /data/DrillJumboControl-V3.0/bin(因为库在 bin 下)。修改后的完整内容示例:

ini
[Unit]
Description=Drill Jumbo Control Service
After=network.target
StartLimitIntervalSec=0

[Service]
Type=simple
User=root
Group=root
WorkingDirectory=/data/DrillJumboControl-V3.0/
Environment="LD_LIBRARY_PATH=/data/DrillJumboControl-V3.0/bin"
ExecStart=/data/DrillJumboControl-V3.0/bin/go_build_DrillJumboControl_V3_0_main
Restart=always
RestartSec=5
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target
保存(nano:Ctrl+O,回车,Ctrl+X)。

🔄 重载并重启服务
bash
systemctl daemon-reload
systemctl restart drill-jumbo-control
✅ 检查状态
bash
systemctl status drill-jumbo-control
如果显示 active (running),则问题解决。

📋 查看日志确认无报错
bash
journalctl -u drill-jumbo-control -n 20


程序已经正常发送can数据了

相关推荐
韩明君1 天前
OpenClaw安全部署实现
linux·人工智能·安全·debian·本地部署·ai agent·openclaw
嘿嘿潶黑黑2 天前
关于Debian源速度慢的解决方法
运维·debian
特长腿特长3 天前
在debian系统上使用kvm、添加网卡设备案例
服务器·debian·php
aq55356005 天前
Laravel5.X核心特性全解析
ubuntu·debian
aq55356007 天前
CentOS vs Debian:如何选择最适合的Linux发行版
linux·centos·debian
羌俊恩18 天前
统信UOS存在elfverify绕过漏洞
debian·grub·uos v20·内核升级·deb包
污斑兔25 天前
Debian 普通用户无 sudo 权限问题排查与解决
运维·debian
tobebetter95271 个月前
Debian / Ubuntu openclaw 浏览器自动化
ubuntu·自动化·debian
allway21 个月前
Debian Regular Expressions
运维·debian·scala