admin管理员组文章数量:1542784
前言
最近,遇到了个问题,在LIUNX下如何自启应用程序。这个简单。之前我弄jupyter的时候其实也弄过。不过那个是普通用户。这个程序需要用到串口权限什么的,还有打日志也需要权限。
折腾了好久,只想说,LIUNX的权限系统真的繁琐。
开始动手
先把相关的文件准备到位:.serivce服务和.sh脚本
创建xxxx.service文件:sudo vim /etc/systemd/system/xxxx.service,在文件中复制如下内容。‘#’及之后注释内容必须删除,否则运行会报错
[Unit]
Description=xxxx
[Service]
Type=simple
User=fs # 需要更换为自己的用户名
ExecStart=/home/fs/Desktop/xxxx.sh # 更换为自己的路径
[Install]
WantedBy=default.target
接下来就是到上面这个路径下创建这个xxxx.sh脚本文件,具体创建脚本过程此处省略了吧,可以用vim或者可视化或者其他方法,随意。此处重点是.sh内容:
#!/bin/bash
echo "123456"|sudo su #此处echo后面应改为用户自己的管理员密码
cd /home/fs/Desktop/xxxx/build #此处cd指令跳转到 目标文件的路径
sudo ./xxxx #此处是以管理员权限运行目标文件
exit 0
‘#’及之后注释内容记得删除。
.serivce服务文件启动
这部分就和当初配置jupyter的时候一样了。
sudo systemctl enable xxxx.serivce
sudo systemctl start xxxx.serivce
.serivce服务文件关闭自启动
sudo systemctl stop xxxx.serivce
sudo systemctl disable xxxx.serivce
简评
根据笔者的使用经验,在一个终端下,使用过一次sudo并且键入密码后,之后的sudo开头的指令都可以不用再输入密码运行。因此,在.sh文件中,第二排直接切换成root权限,第四排sudo运行的时候就可以不用再echo一次了。经过笔者的测试,在这个脚本下,如果第四排不加sudo,仍然会是普通用户权限,这跟自己开个终端的运行结果不太一样(自己开终端的话,sudo su后就一直是root用户了)。
版权声明:本文标题:开机以root权限启动某一个应用程序(开机自启动) 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1727081796a1096926.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论