在linux上制作安装脚本

时间:2016-01-17 14:33:46

标签: python linux bash

我做了一个程序,只要我有松弛的未读信息,就打开我的Logitech G9 LED灯。我试图用脚本安装程序,但我不熟悉应该去哪里。现在,该程序依赖于g9led和python来工作。如果我制作安装脚本,移动可执行文件的最佳位置在哪里? /usr/bin

我的安装脚本如下所示:

#!/bin/bash

cd /tmp
wget http://als.regnet.cz/data/g9led.c
gcc g9led.c -o g9led -lusb
rm g9led.c
mv g9led /usr/bin/g9led
mv unread_msg_monitor.py /usr/bin/unread_msg_monitor.py
sed -i ". /home/papes1ns/.virtualenvs/unread/bin/activate && python /home/papes1ns/Projects/hes_slack_integration/unread.py &" /etc/rc.local
echo "finished"
exit 0

https://github.com/papes1ns/slack_unread_msg_monitor/blob/master/unread_msg_monitor.py

1 个答案:

答案 0 :(得分:1)

将可执行文件(某处)留在主文件夹中没有错。

但就软件自动化而不是/etc/rc.local而言,请考虑使用init方案来控制服务并让它们在启动时启动。

例如,如果您的系统上有runit(sudo apt-get install runit),则需要创建2个脚本,例如g9monitor.runit

#!/bin/sh
cd /home/papes1ns
exec chpst -upapes1ns:papes1ns python unread_msg_monitor.py

g9led.runit

#!/bin/sh
cd /home/papes1ns
exec chpst -upapes1ns:papes1ns g9led

然后将上述文件复制到/etc/sv/

中的目录
sudo mkdir -p /etc/sv/g9monitor /etc/sv/g9led
sudo cp g9monitor.runit /etc/sv/g9monitor/run
sudo cp g9led.runit /etc/sv/g9led/run

使它们可执行,并在/etc/service中创建软链接:

sudo chmod +x /etc/sv/g9monitor/run /etc/sv/g9led/run
sudo ln -sf /etc/sv/g9monitor /etc/service/g9monitor
sudo ln -sf /etc/sv/g9led /etc/service/g9led

一旦建立链接,服务就应该开始了。然后,您可以通过sv命令控制它们:

sudo sv status g9monitor
sudo sv down g9led
sudo sv up g9led

要停用它们,请删除链接:

sudo rm -f /etc/service/g9monitor
sudo rm -f /etc/service/g9led