python - 在 linux mint 上制作安装脚本

标签 python linux bash

我制作了一个程序,当我在空闲状态下有未读消息时,它会打开我的罗技 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

最佳答案

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

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

例如,如果您有 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中创建软链接(soft link):

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

关于python - 在 linux mint 上制作安装脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34839500/

相关文章:

python - 将python中混合数据类型对象中的数字转换为int/float,同时保持其余部分不变

python - 将 sed 正则表达式转换为 python 代码

狂欢 : extracting part of a string

linux - bash脚本flock()锁定并启动服务

bash - 让 "complete"和 "menu-complete"一起工作

python - 如何使用 Cerberus 返回自定义规则名称/错误代码?

python - 如何不使用pip将软件包安装到anaconda

带有检查目录的 Linux 别名

linux - Jenkins 管道 sh 步骤失败

linux - linux配置squid步骤