1、创建service文档
cd /etc/systemd/system
touch my_program.service
sudo gedit my_program.service
将以下内容粘贴到my_program.service文件中。
内容参考如下:
[Unit]
Description=Bauma IPC1
After=network.target
[Service]
ExecStart=/path/to/your/exec
#RestartSec=5 #重启时间间隔
Restart=always
# 程序启动后等待多少秒判断是否成功启动(默认0秒)
StartLimitInterval=10
# 设置运行的用户权限(如果需要)
User=user # user 替代自己的用户名
StandardOutput=journal #用于查看服务运行状态
StandardError=journal #用于查看服务运行状态
# 设置环境变量(可选)
Environment=DISPLAY=:0 #不确定可以通过echo $DISPLAY查看,多显示器时会有影响
Environment=XDG_RUNTIME_DIR=/tmp/runtime-user #不确定可以通过echo $XDG_RUNTIME_DIR查看
[Install]
WantedBy=multi-user.target
2、重载、启动服务,查看服务状态
在创建或修改服务文件后,运行以下命令重新加载 systemd
:
sudo systemctl daemon-reload
通过 systemd
启动你的程序:
sudo systemctl start my_program.service
如果你希望程序在系统启动时自动运行,启用开机启动:
sudo systemctl enable my_program.service
检查服务运行状态
sudo systemctl status my_program.service
or
journalctl -u my_program.service -f
3、服务退出(程序不再自动重启)
sudo systemctl stop my_program.service
4、坑1:pcanbasic有关
如果通过journalctl检查服务状态时发现
ERROR: failed to scan directory (errno=2) '/sys/class/pcan' 并且运行:
cat /proc/pcan/
没有此文件
执行下列命令
cd path/to/your/peak-linux-driver
make clean
make NET=NO PCC=NO
sudo make install
sudo modprobe pcan 1> /dev/null
问题解决