17 Oct 2024 |
| Gabriel Fontes ❄ changed their profile picture. | 17:31:12 |
ratsclub | eu queria usar o apprise já por ter N plataformas ao mesmo tempo | 20:28:48 |
ratsclub | e se eu consigo ler, não consigo rodar o systemctl status | 20:29:09 |
ratsclub | mas não consigo ler o arquivo de config :( | 20:28:56 |
ratsclub | Possuo o seguinte script:
pkgs.writeScript "sendmail"
''
#!/bin/sh
${lib.getExe pkgs.apprise} -vv \
-t "Status of service $2" \
-b $(systemctl status --full "$2") \
--config=${cfg.configFile}
'';
E eu o executo através do ExecStart do systemd:
ExecStart = "${apprise} %i";
O problema é que eu não tenho permissão para ler o arquivo de config desta forma pq é um sub-processo do shell. Alguém sabe como resolver? | 20:21:43 |
Lucas Eduardo | Se bem que era quase hora de eu dar uma olhada se hj em dia consigo melhorar | 20:28:31 |
Lucas Eduardo | Eu fiz o meu sendmail com socket activation basicamente | 20:28:13 |
ratsclub | mas daí eu não consigo pegar o status | 20:23:39 |
ratsclub | se eu colocar o one-liner no ExecStart , funciona:
${lib.getExe pkgs.apprise} -vv -t "Status of service %i" -b %i --config=${cfg.configFile} | 20:23:15 |
ratsclub | entendeu o drama? | 20:38:07 |
ratsclub | tem sim, é por isso que ele não consegue ler | 20:35:23 |
ratsclub | ali no ExecStart está meu script feito com pkgs.writeScript | 20:46:10 |
ratsclub | mas eu só queria ler o arquivo de configuração | 20:37:34 |
ratsclub | na real ele executa, mas o apprise não consegue ler o arquivo de configuração | 20:47:25 |
Lucas Eduardo | Eu uso isso no esquema pra atualizar mirror de repo git | 20:43:44 |
Lucas Eduardo | Tu criou um sendmail que chama uma unit ou o q? | 20:36:05 |
Lucas Eduardo | Tu pode fazer um script que recebe a mensagem pelo stdin, faz socket activation com ele e o sendmail basicamente passa a mensagem pelo netcat | 20:36:39 |
ratsclub | o único lugar que consigo, é no ExecStart, mas lá eu não consigo rodar $(systemctl status etc etc) | 20:37:59 |
Lucas Eduardo | Se sim bota no sops | 20:35:15 |
ratsclub | o script tem permissão para ler, mas o subprocesso que chama o comando apprise não tem | 20:35:42 |
Lucas Eduardo | Tu ta usando user unit ou unit de sistema? | 20:45:04 |
Lucas Eduardo | Tu pode tbm passar um script no ExecStart | 20:43:29 |
Lucas Eduardo | Eu uso isso ai no sendmail pra Telegram | 20:36:49 |
ratsclub | mas se eu faço assim, o apprise não consegue ler o arquivo de configuração | 20:44:06 |
ratsclub | systemd.services."apprise@" = {
description = "Sends a status notification via apprise on service failures.";
onFailure = mkForce [ ];
unitConfig = {
StartLimitIntervalSec = "5m";
StartLimitBurst = 1;
};
path = [ pkgs.apprise ];
serviceConfig = {
ExecCondition = "${checkConditions} %i";
ExecStart = "${apprise} %i";
Type = "oneshot";
};
}; | 20:45:43 |
ratsclub | é o que eu to fazendo ali | 20:43:55 |
ratsclub | ah, o nome sendmail tá ali só por erro de copi-cola | 20:37:03 |
Lucas Eduardo | Essa shebang tá esquisita | 20:46:58 |
Lucas Eduardo | Ele tá dando erro de no such file né | 20:46:50 |
Lucas Eduardo | No ExecStart não mas pela option script dá | 20:43:18 |