序言
近来,遇见了个问题,在LIUNX下怎样自启应用程序。这个简单。之前我弄jupyter的时侯似乎也弄过。不过哪个是普通用户。这个程序须要用到并口权限哪些的修改linux开机启动权限,还有打日志也须要权限。
折腾了很久,只想说,LIUNX的权限系统真的烦琐。
开始动手先把相关的文件打算到位:.serivce服务和.sh脚本
创建xxxx.service文件:sudovim/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一次了。经过笔者的测试修改linux开机启动权限,在这个脚本下puppy linux,假如第四排不加sudo,依然会是普通用户权限,这跟自己开个终端的运行结果不太一样(自己开终端的话linux rar,sudosu后就仍然是root用户了)。