Misc Notes

记点Linux的东西

制作deb包

文件夹结构如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
--+--root_path
|
+--etc/xxx/config
|
+--opt/xxx/exe
|
+--var/log/xxx
|
+--+--DEBIAN
|
+--control
|
+--postinst

control文件内容

1
2
3
4
5
6
Package: xxxxx
Version: 1.0.0
Section: system
Architecture: amd64
Description: xxxxx
Maintainer: xxxx

postinst需要+x属性,会在安装后被执行,可以用来改用户,比如:

1
2
3
4
chown root.root /opt/xxx
chown root.root /etc/xxx
chown root.root /var/log/xxx
systemctl daemon-reload

Ubuntu通过systemd制作service

/lib/systemd/system/xxx.service

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[Unit]
Description=xxx

[Service]
User=root # 使用合适的用户
Group=root # 使用合适的组
ExecStart=/opt/xxx/xxxx
ExecStop=/bin/kill $MAINPID
ExecReload=/bin/kill -SIGHUP $MAINPID
ExecStop=/bin/kill -SIGINT $MAINPID
Restart=always

[Install]
WantedBy=multi-user.target # 还不太懂这个

关键是,要reload一下

1
systemctl daemon-reload