fhs-install-v2ray
fhs-install-v2ray copied to clipboard
对于仓库中 v2ray.service [email protected] 能不能同时使用的问题
就像标题问的那样,我发现 v2ray.service 中的 -confdir 指定的是 /usr/local/etc/v2ray,但是 [email protected] 是 -config /usr/local/etc/v2ray/%i.json
如果打算同时使用这两个 .service 的话,是否会带来不便?
的確是會帶來不便的,這可能會造成配置上的衝突。
因為 v2ray.service 會讀取目錄下的所有配置,之所以保留 [email protected],是為了應對仍要使用單文件配置的情況,所以沒有考慮同時使用 v2ray.service 和 [email protected] 的情景。
的確是會帶來不便的,這可能會造成配置上的衝突。
因為
v2ray.service會讀取目錄下的所有配置,之所以保留[email protected],是為了應對仍要使用單文件配置的情況,所以沒有考慮同時使用v2ray.service和[email protected]的情景。
原来如此,那未来会做出改变吗?
我個人更傾向於保持現狀,因為多文件配置可以解決大多使用場景了。
不過,如果你願意,可以對現有的 service 進行修改或是替換,比如 v2ray.service 讀取單獨的一個目錄,[email protected] 又讀取單獨的另一個目錄,一個簡單的小腳本,又或是一小部分文檔說明,就可以解決,並且,這可以作為對現有內容的補充,以應對此類問題。
我個人更傾向於保持現狀,因為多文件配置可以解決大多使用場景了。
不過,如果你願意,可以對現有的 service 進行修改或是替換,比如
v2ray.service讀取單獨的一個目錄,[email protected]又讀取單獨的另一個目錄,一個簡單的小腳本,又或是一小部分文檔說明,就可以解決,並且,這可以作為對現有內容的補充,以應對此類問題。
例如 config2confdir.sh 吗?
是的。
安装脚本在升级时好像没有考虑到用户已经在使用[email protected]的情况,升级后直接启动了v2ray.service(且升级前没有停止[email protected])。
建议重新打开一下,因为还有一个问题没有解决
@unknowndev233 可以新建一個文件夾,例如:
/usr/local/etc/v2ray/config/
然後將 [email protected] 文件中的 ExecStart 部分修改為:
ExecStart=/usr/local/bin/v2ray -config /usr/local/etc/v2ray/config/%i.json
@unknowndev233 可以新建一個文件夾,例如:
/usr/local/etc/v2ray/config/然後將
[email protected]文件中的ExecStart部分修改為:ExecStart=/usr/local/bin/v2ray -config /usr/local/etc/v2ray/config/%i.json
问一下,systemd 文件放在 /usr/local/lib/systemd/system 时 systemd 也可以感知到吗?
剛剛試了一下,是可以的。
剛剛試了一下,是可以的。
我有一个想法,把 unit 文件放在那里,然后有个脚本在 /etc/systemd/system/v2ray.service.d 做覆盖
/etc/systemd/system/
├── v2ray.service -> /usr/local/lib/systemd/system/v2ray.service
└── [email protected] -> /usr/local/lib/systemd/system/[email protected]
是類似這種結構麼?
/etc/systemd/system/ ├── v2ray.service -> /usr/local/lib/systemd/system/v2ray.service └── [email protected] -> /usr/local/lib/systemd/system/[email protected]是類似這種結構麼?
不是
在 /etc/systemd/system/xxx.service.d 下创建的 .conf 文件可以覆盖原本 .service 文件的内容
假设有一个 /etc/systemd/system/v2ray.service.d/overlayExecStart.conf 文件,内容如下: [Service] ExecStart=/usr/local/bin/v2ray -confdir /etc/v2ray/confdir
這個可以直接執行:
# systemctl edit unit
這會建立一個子配置文件,但並不是所有參數都會被子配置文件覆蓋,並且,在修改 ExecStart 前必須將其置空。
下面是一個例子:
[Service]
User=v2ray
ExecStart=
ExecStart=/usr/local/bin/v2ray -confdir /etc/v2ray/confdir/
也可執行:
# systemctl edit --full unit
這會打開 /etc/systemd/system/unit。
上述方案應由使用者自行判斷。
這會建立一個子配置文件,但並不是所有參數都會被子配置文件覆蓋,並且,在修改
ExecStart前必須將其置空。下面是一個例子:
[Service] User=v2ray ExecStart= ExecStart=/usr/local/bin/v2ray -confdir /etc/v2ray/confdir/
~~不需要空吧?~~ 实测发现需要
這個可以直接執行:
# systemctl edit unit這會建立一個子配置文件,但並不是所有參數都會被子配置文件覆蓋,並且,在修改
ExecStart前必須將其置空。下面是一個例子:
[Service] User=v2ray ExecStart= ExecStart=/usr/local/bin/v2ray -confdir /etc/v2ray/confdir/也可執行:
# systemctl edit --full unit這會打開
/etc/systemd/system/unit。上述方案應由使用者自行判斷。
或许可以把这部分写进文档里
额外一提,如果两个配置文件都使用 confdir 的话,那么 v2ray 文件夹可能要考虑创建一个 default 或者类似的文件夹给非模板配置使用
@unknowndev233 看看 PR #114 对于解决这个问题是不是足够。
小白问一下这两个v2ray.service和[email protected]有什么区别呢?我现在用的是4.28.2最新版本,v2ray和caddy都是亲自手动安装的,就是在/etc/systemd/system/下放置*.service文件时感觉[email protected]完全用不到啊,在执行指令systemctl daemon-reload 和 systemctl enable v2ray后,并没有提及到[email protected]这个文件,是不是这个文件没什么太大用处或者用不到?
小白问一下这两个v2ray.service和[email protected]有什么区别呢?我现在用的是4.28.2最新版本,v2ray和caddy都是亲自手动安装的,就是在/etc/systemd/system/下放置*.service文件时感觉[email protected]完全用不到啊,在执行指令systemctl daemon-reload 和 systemctl enable v2ray后,并没有提及到[email protected]这个文件,是不是这个文件没什么太大用处或者用不到?
Refer: https://www.freedesktop.org/software/systemd/man/systemd.unit.html