С grep
иsed
:
Вы можете добавить ^
в начало каждой строки и ,
в конец каждой строки файла2 и использоватьgrep
:
grep -f <(sed 's/^/^/;s/$/,/' file2) file1
Опция -f
считывает шаблоны из файла (в нашем примере не из реального файла, а из подстановки процесса<(…)
).
Есть три способа сделать это:
appService.service
в ~/.config/systemd/system/
и удалите строку User=
. Затем вы можете управлять им с помощью:systemctl --user start appService.service
systemctl --user stop appService.service
/etc/polkit-1/localauthority/50-local.d/service-auth.pkla
---
[Allow yourname to start/stop/restart services]
Identity=unix-user:youname
Action=org.freedesktop.systemd1.manage-units
ResultActive=yes
Если вы используете Arch/Redhat (polkit >= 106 ), то это сработает:
/etc/polkit-1/rules.d/service-auth.rules
---
polkit.addRule(function(action, subject) {
if (action.id == "org.freedesktop.systemd1.manage-units" &&
subject.user == "yourname") {
return polkit.Result.YES;
} });
sudo
. Я не большой поклонник этого, потому что sudo
не нужно полагаться на конфигурацию NOPASSWD:
, и я не чувствую, что она предназначена для косвенного вызова. Вот для чего предназначен polkit. /etc/sudoers.d/sysctl
---
youname ALL = NOPASSWD: /bin/systemctl
Если это касается программного обеспечения, которое вы планируете распространять, я бы определенно выбрал решение polkit и сделал это для каждой группы (согласно связанному ответу ). Это означает, что вам не нужно жестко -кодировать имя пользователя, вместо этого добавляйте любых пользователей, которых вы хотите, в эту группу, чтобы получить функциональность.
Может стоит создать блок из пользователя?
systemctl edit --user --force --full myNewUnit
В редакторе откроется новый файл ~/.config/systemd/user/myNewUnit.service
Вставьте контент, сохраните и работайте с ним без рут прав
systemctl enable --user myNewUnit
systemctl start --user myNewUnit
systemctl status --user myNewUnit
Или если вам нужно отредактировать, чем открыть без--force
systemctl edit --user --full myNewUnit
Надеюсь, ничего не напутал и будет полезно