在Linux系统上启动一个不阻塞图形界面的sh脚本,可采用以下步骤:
- 创建一个启动脚本(例如,/opt/autostart.sh),并将其权限更改为可执行。(下图只是例子,sh文件怎么写取决于你的需求)
#!/bin/bash
#环境变量
export QT_QPA_EGLFS_ALWAYS_SET_MODE=1
export QT_QPA_EGLFS_KMS_CONFIG=/usr/share/qt5/cursor.json
export QT_QPA_PLATFORM=linuxfb
export QT_QPA_EGLFS_KMS_ATOMIC=1
#动态链接库
export LD_LIBRARY_PATH=/opt/opencv4.5.4_gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf/lib
#执行
echo "/opt/fydlw2 start ..."
chmod +x /opt/fydlw2
/opt/fydlw2
- 在 /etc/systemd/system 中新建一个服务单元。在该目录创建一个文件my-service.service,文件中编辑如下:
[Unit]
Description=AutostartService
After=multi-user.target
[Service]
ExecStart=/opt/autostart.sh
Type=simple
Restart=always
User=root
[Install]
WantedBy=multi-user.target
这里的 User
值应设置为能够运行该脚本的用户帐户名字(通常不应该使用root用户运行)。
- 注册服务
systemctl enable my-service.service
ok了
下面给出一些可能用得着的命令
cd /etc/systemd/system/
journalctl -u my-service
systemctl status my-service.service
systemctl enable my-service.service
systemctl disable my-service.service
systemctl start my-service.service
systemctl stop my-service.service
systemctl daemon-reload
systemctl list-dependencies
systemctl get-default
env