Debian系统的开机启动和进程看护

1.推荐的做法 - systemctl

systemctl,这种做法需要事先编辑一个.service的脚本放在/etc/systemd/system,这里有一个例子:

bash 复制代码
[Unit]
Description=Guide Rtsp Server - using mediamtx
After=network.target
 
[Service]
Type=simple
WorkingDirectory=/home/app/rtsp
ExecStart=/home/app/rtsp/mediamtx /home/app/rtsp/mediamtx.yml
Restart=always
RestartSec=5s
User=cat
Group=root

[Install]
WantedBy=multi-user.target

注意,上面已经附带有进程看护的部分。放入/etc/systemd/system目录后,执行命令行:

systemctl enable xxxxx.service

sudo reboot

即可使能这个开机脚本。

2. 注意事项

  • ExecStart不需要添加 & 放入后台执行的标记。ExecStart事实上是一个阻塞式的命令行。
  • 不要把delay语句,直接放入命令行,你可以把他们放入一个.sh脚本中。比如类似:
bash 复制代码
ExecStart=/bin/sleep 2; cd /home/app/camera.ch1; python3 /home/app/camera.ch1/camera.ch1
bash 复制代码
ExecStart=/bin/sleep 2 && cd /home/app/camera.ch1 && python3 /home/app/camera.ch1/camera.ch1

都是错的。这些指令在命令行执行没有问题,但是启动脚本的ExecStart会把所有的靠后的字段认为是命令行参数。

2.1. 启动脚本的出错的调试

开机脚本的日志在/var/log里,比如:daemonlog

May 4 13:44:54 lubancat start.sh[1528]: d run OutputOperator in NPU, please call rknn_create_memory using size_with_stride.

May 4 13:44:54 lubancat start.sh[1528]: W RKNN: [13:44:53.321] Output(327): size_with_stride larger than model origin size, if need run OutputOperator in NPU, please call rknn_create_memory using size_with_stride.

May 4 13:44:54 lubancat start.sh[1528]: W RKNN: [13:44:53.321] Output(328): size_with_stride larger than model origin size, if need run OutputOperator in NPU, please call rknn_create_memory using size_with_stride.

这类日志不太大的时候,可用

journalctl -xe

查看。

2.1 日志的尺寸设置

从略,请自行查看。

4. 权限问题

如果系统的root用户无法登陆,你可以把你当前使用的用户加入root组:

bash 复制代码
sudo usermod -aG groupname username

此外,如果涉及在.service开机脚本中调用其他的.sh脚本,execStart中的被调用脚本的读+执行权限尽量加上。

bash 复制代码
chmod +rx your_script_file.sh

另外在这些脚本中,注意加上首行的执行程序声明,例如:

bash 复制代码
#!/bin/bash

# 在这里添加您希望执行的命令或操作
echo "Hello, this is my script!"

# 示例操作:启动一个Python脚本
python3 /path/to/your/python_script.py param1 param2

注意,这些开机脚本中不要添加 &移入后台的处理,让它阻塞即可。

相关推荐
寂柒3 小时前
信号量——基于环形队列的生产消费模型
linux·ubuntu
一袋米扛几楼984 小时前
【密码学】CrypTool2 工具是什么?
服务器·网络·密码学
林姜泽樾7 小时前
Linux入门第十二章,创建用户、用户组、主组附加组等相关知识详解
linux·运维·服务器·centos
xiaokangzhe7 小时前
Linux系统安全
linux·运维·系统安全
feng一样的男子7 小时前
NFS 扩展属性 (xattr) 提示操作不支持解决方案
linux·go
南棱笑笑生7 小时前
20260310在瑞芯微原厂RK3576的Android14查看系统休眠时间
服务器·网络·数据库·rockchip
XDHCOM8 小时前
ORA-32152报错咋整啊,数据库操作遇到null number问题远程帮忙修复
服务器·数据库·oracle
Highcharts.js8 小时前
Highcharts React v4.2.1 正式发布:更自然的React开发体验,更清晰的数据处理
linux·运维·javascript·ubuntu·react.js·数据可视化·highcharts
c++之路9 小时前
Linux网络协议与编程基础:TCP/IP协议族全解析
linux·网络协议·tcp/ip
Charlie__ZS9 小时前
Ubuntu 22.04新建用户,并赋予管理权限
linux·os·ubuntn