[gelöst] anacron und systemd-inhibit

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
Benutzeravatar
Profbunny
Beiträge: 592
Registriert: 04.04.2004 11:12:29
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Bautzen

[gelöst] anacron und systemd-inhibit

Beitrag von Profbunny » 25.04.2017 20:31:48

Hallo,
ich betreibe einen anacron user beschrieben wie hier http://akeil.net/posts/user-controlled-anacron.html
Dieser führt mein daily backup script aus:
obnam:

Code: Alles auswählen

#!/bin/bash
 set -x
 export DISPLAY=:0.0
 notify-send  "Starting obnam backup..." --icon=/usr/share/icons/Adwaita/256x256/devices/media-floppy.png
 echo whoami
 whoami
 
 yad --text='obnam backup' --notification --image=/usr/share/icons/Adwaita/256x256/devices/media-floppy.png&
 
 sleep 5
 
 if ! /bin/systemd-inhibit --what=shutdown:sleep --who=obnam --why="Backup in progress" --mode=block obnam backup; then
      notify-send "Unable to finish obnam backup."
         killall yad
         exit 1
     else
         killall yad
         notify-send "Finished obnam backup."
 fi
 
 exit 0
Dieses Script für sich allein gestartet, macht genau was es soll. Will sagen, backup läuft und dabei kann ich den Rechner nicht ausschalten.
Wenn nun allerdings anacron das Script startet, bricht es mit einer Fehlermeldung ab, die ich nicht verstehe. Zuerst dachte ich an rechte Probleme, passiert ja recht häufig. Also habe ich mal ein whoami eingebaut und siehe da, er startet das Script mit meinem Benutzer.
Hier ist die Ausgabe der mail con anacron.
+ export DISPLAY=:0.0
+ DISPLAY=:0.0
+ echo ' obnam daily backup'
obnam daily backup
+ notify-send 'Starting obnam backup...' --icon=/usr/share/icons/Adwaita/256x256/devices/media-floppy.png
+ echo whoami
whoami
+ whoami
mdomann
+ /bin/systemd-inhibit --what=shutdown:sleep --who=obnam '--why=Backup in progress' --mode=block obnam backup
+ yad '--text=obnam backup' --notification --image=/usr/share/icons/Adwaita/256x256/devices/media-floppy.png
Failed to inhibit: Access denied
+ notify-send 'Unable to finish obnam backup.'
+ exit 1
run-parts: /home/mdomann/.anacron/cron.daily/obnam exited with return code 1
Wenn das Script mit meinem Benutzer läuft, wieso kann ich dann auf einmal nicht mehr mit systemd-inhibit arbeiten?
Jemand ne Idee?
Micha
Zuletzt geändert von Profbunny am 01.05.2017 10:31:48, insgesamt 1-mal geändert.
Rechner / Server Debian sid

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: anacron und systemd-inhibit

Beitrag von rendegast » 28.04.2017 04:41:09

Wenn es klappt, führst Du das Skript in einem Terminalfenster auf Deinem Desktop oder von der virtuellen Konsole aus (Strg-Alt-F1 -F6)?
Resp. wenn der cron/anacron-Job läuft, erscheint eine Nachricht auf dem Desktop (nicht nur des mdomann)?
Geht der Job / das Skript nicht implizit davon aus, daß zur Laufzeit auch mdomann am Desktop angemeldet ist?


Generell 'yad' als '/usr/bin/yad' eintragen?
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Benutzeravatar
Profbunny
Beiträge: 592
Registriert: 04.04.2004 11:12:29
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Bautzen

Re: anacron und systemd-inhibit

Beitrag von Profbunny » 28.04.2017 21:23:55

Das Script läuft vom Terminal aus. Wenn der Rechner läuft, bin ich auch angemeldet.

Also das Problem scheint tiefer zu liegen.

Code: Alles auswählen

+ strace /bin/systemd-inhibit --what=shutdown:sleep --who=obnam '--why=Backup in progress' --mode=block obnam backup
execve("/bin/systemd-inhibit", ["/bin/systemd-inhibit", "--what=shutdown:sleep", "--who=obnam", "--why=Backup in progress", "--mode=block", "obnam", "backup"], [/* 9 vars */]) = 0
brk(NULL)                               = 0x56241dc25000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
mmap(NULL, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fbd7d364000
access("/etc/ld.so.preload", R_OK)      = 0
open("/etc/ld.so.preload", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
close(3)                                = 0
open("/lib/systemd/tls/x86_64/libsystemd-shared-232.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/lib/systemd/tls/x86_64", 0x7ffd34e405d0) = -1 ENOENT (No such file or directory)
open("/lib/systemd/tls/libsystemd-shared-232.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/lib/systemd/tls", 0x7ffd34e405d0) = -1 ENOENT (No such file or directory)
open("/lib/systemd/x86_64/libsystemd-shared-232.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/lib/systemd/x86_64", 0x7ffd34e405d0) = -1 ENOENT (No such file or directory)
open("/lib/systemd/libsystemd-shared-232.so", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=2217104, ...}) = 0
mmap(NULL, 2221504, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fbd7cf25000
mprotect(0x7fbd7d0b7000, 4096, PROT_NONE) = 0
mmap(0x7fbd7d0b8000, 569344, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x192000) = 0x7fbd7d0b8000
mmap(0x7fbd7d143000, 1472, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fbd7d143000
close(3)                                = 0
open("/lib/systemd/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=228905, ...}) = 0
mmap(NULL, 228905, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fbd7d32c000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0Pa\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=135440, ...}) = 0
mmap(NULL, 2212936, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fbd7cd08000
mprotect(0x7fbd7cd20000, 2093056, PROT_NONE) = 0
mmap(0x7fbd7cf1f000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x17000) = 0x7fbd7cf1f000
mmap(0x7fbd7cf21000, 13384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fbd7cf21000
close(3)                                = 0
open("/lib/systemd/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\3\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1685264, ...}) = 0
mmap(NULL, 3791264, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fbd7c96a000
mprotect(0x7fbd7caff000, 2093056, PROT_NONE) = 0
mmap(0x7fbd7ccfe000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x194000) = 0x7fbd7ccfe000
mmap(0x7fbd7cd04000, 14752, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fbd7cd04000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libselinux.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0000k\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=155400, ...}) = 0
mmap(NULL, 2259664, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fbd7c742000
mprotect(0x7fbd7c767000, 2093056, PROT_NONE) = 0
mmap(0x7fbd7c966000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x24000) = 0x7fbd7c966000
mmap(0x7fbd7c968000, 6864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fbd7c968000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libcap.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\300\30\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=22768, ...}) = 0
mmap(NULL, 2117976, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fbd7c53c000
mprotect(0x7fbd7c540000, 2097152, PROT_NONE) = 0
mmap(0x7fbd7c740000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x4000) = 0x7fbd7c740000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/librt.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340 \0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=31744, ...}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fbd7d32a000
mmap(NULL, 2128832, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fbd7c334000
mprotect(0x7fbd7c33b000, 2093056, PROT_NONE) = 0
mmap(0x7fbd7c53a000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0x7fbd7c53a000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/liblzma.so.5", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\2200\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=154376, ...}) = 0
mmap(NULL, 2249360, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fbd7c10e000
mprotect(0x7fbd7c133000, 2093056, PROT_NONE) = 0
mmap(0x7fbd7c332000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x24000) = 0x7fbd7c332000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/usr/lib/x86_64-linux-gnu/liblz4.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\300\"\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=72024, ...}) = 0
mmap(NULL, 2167120, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fbd7befc000
mprotect(0x7fbd7bf0d000, 2093056, PROT_NONE) = 0
mmap(0x7fbd7c10c000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x10000) = 0x7fbd7c10c000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libgcrypt.so.20", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\300\254\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=1108088, ...}) = 0
mmap(NULL, 3204352, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fbd7bbed000
mprotect(0x7fbd7bcf4000, 2093056, PROT_NONE) = 0
mmap(0x7fbd7bef3000, 36864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x106000) = 0x7fbd7bef3000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libacl.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\37\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=35488, ...}) = 0
mmap(NULL, 2130592, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fbd7b9e4000
mprotect(0x7fbd7b9eb000, 2097152, PROT_NONE) = 0
mmap(0x7fbd7bbeb000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x7000) = 0x7fbd7bbeb000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libidn.so.11", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 .\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=210968, ...}) = 0
mmap(NULL, 2306096, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fbd7b7b0000
mprotect(0x7fbd7b7e2000, 2097152, PROT_NONE) = 0
mmap(0x7fbd7b9e2000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x32000) = 0x7fbd7b9e2000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libseccomp.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340\30\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=280872, ...}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fbd7d328000
mmap(NULL, 2375936, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fbd7b56b000
mprotect(0x7fbd7b59a000, 2093056, PROT_NONE) = 0
mmap(0x7fbd7b799000, 94208, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2e000) = 0x7fbd7b799000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libpcre.so.3", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\25\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=468920, ...}) = 0
mmap(NULL, 2564360, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fbd7b2f8000
mprotect(0x7fbd7b36a000, 2093056, PROT_NONE) = 0
mmap(0x7fbd7b569000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x71000) = 0x7fbd7b569000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\200\r\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=14640, ...}) = 0
mmap(NULL, 2109680, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fbd7b0f4000
mprotect(0x7fbd7b0f7000, 2093056, PROT_NONE) = 0
mmap(0x7fbd7b2f6000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7fbd7b2f6000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libgpg-error.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0p(\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=79936, ...}) = 0
mmap(NULL, 2175160, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fbd7aee0000
mprotect(0x7fbd7aef3000, 2093056, PROT_NONE) = 0
mmap(0x7fbd7b0f2000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x12000) = 0x7fbd7b0f2000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libattr.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\300\23\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=18832, ...}) = 0
mmap(NULL, 2113904, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fbd7acdb000
mprotect(0x7fbd7acdf000, 2093056, PROT_NONE) = 0
mmap(0x7fbd7aede000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x7fbd7aede000
close(3)                                = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fbd7d326000
mmap(NULL, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fbd7d323000
arch_prctl(ARCH_SET_FS, 0x7fbd7d3238c0) = 0
mprotect(0x7fbd7ccfe000, 16384, PROT_READ) = 0
mprotect(0x7fbd7aede000, 4096, PROT_READ) = 0
mprotect(0x7fbd7b0f2000, 4096, PROT_READ) = 0
mprotect(0x7fbd7b2f6000, 4096, PROT_READ) = 0
mprotect(0x7fbd7cf1f000, 4096, PROT_READ) = 0
mprotect(0x7fbd7b569000, 4096, PROT_READ) = 0
mprotect(0x7fbd7b799000, 90112, PROT_READ) = 0
mprotect(0x7fbd7b9e2000, 4096, PROT_READ) = 0
mprotect(0x7fbd7bbeb000, 4096, PROT_READ) = 0
mprotect(0x7fbd7bef3000, 8192, PROT_READ) = 0
mprotect(0x7fbd7c10c000, 4096, PROT_READ) = 0
mprotect(0x7fbd7c332000, 4096, PROT_READ) = 0
mprotect(0x7fbd7c53a000, 4096, PROT_READ) = 0
mprotect(0x7fbd7c740000, 4096, PROT_READ) = 0
mprotect(0x7fbd7c966000, 4096, PROT_READ) = 0
mprotect(0x7fbd7d0b8000, 565248, PROT_READ) = 0
mprotect(0x56241c71c000, 4096, PROT_READ) = 0
mprotect(0x7fbd7d367000, 4096, PROT_READ) = 0
munmap(0x7fbd7d32c000, 228905)          = 0
set_tid_address(0x7fbd7d323b90)         = 18105
set_robust_list(0x7fbd7d323ba0, 24)     = 0
rt_sigaction(SIGRTMIN, {sa_handler=0x7fbd7cd0dbd0, sa_mask=[], sa_flags=SA_RESTORER|SA_SIGINFO, sa_restorer=0x7fbd7cd190c0}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {sa_handler=0x7fbd7cd0dc60, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART|SA_SIGINFO, sa_restorer=0x7fbd7cd190c0}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
brk(NULL)                               = 0x56241dc25000
brk(0x56241dc46000)                     = 0x56241dc46000
statfs("/sys/fs/selinux", 0x7ffd34e40e00) = -1 ENOENT (No such file or directory)
statfs("/selinux", 0x7ffd34e40e00)      = -1 ENOENT (No such file or directory)
open("/proc/filesystems", O_RDONLY)     = 3
fstat(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
read(3, "nodev\tsysfs\nnodev\trootfs\nnodev\tr"..., 1024) = 346
read(3, "", 1024)                       = 0
close(3)                                = 0
access("/etc/selinux/config", F_OK)     = 0
open("/proc/self/stat", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
read(3, "18105 (systemd-inhibit) R 18103 "..., 1024) = 316
close(3)                                = 0
access("/proc/vz", F_OK)                = -1 ENOENT (No such file or directory)
getpid()                                = 18105
open("/run/systemd/container", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/proc/1/environ", O_RDONLY|O_CLOEXEC) = -1 EACCES (Permission denied)
open("/proc/cmdline", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
read(3, "BOOT_IMAGE=/vmlinuz-4.10.0-trunk"..., 1024) = 147
close(3)                                = 0
getpid()                                = 18105
getpid()                                = 18105
getpid()                                = 18105
open("/sys/fs/kdbus/0-system/bus", O_RDWR|O_NOCTTY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
socket(AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 3
getsockopt(3, SOL_SOCKET, SO_RCVBUF, [212992], [4]) = 0
setsockopt(3, SOL_SOCKET, SO_RCVBUFFORCE, [8388608], 4) = -1 EPERM (Operation not permitted)
setsockopt(3, SOL_SOCKET, SO_RCVBUF, [8388608], 4) = 0
getsockopt(3, SOL_SOCKET, SO_SNDBUF, [212992], [4]) = 0
setsockopt(3, SOL_SOCKET, SO_SNDBUFFORCE, [8388608], 4) = -1 EPERM (Operation not permitted)
setsockopt(3, SOL_SOCKET, SO_SNDBUF, [8388608], 4) = 0
connect(3, {sa_family=AF_UNIX, sun_path="/var/run/dbus/system_bus_socket"}, 33) = 0
getsockopt(3, SOL_SOCKET, SO_PEERCRED, {pid=1, uid=0, gid=0}, [12]) = 0
fstat(3, {st_mode=S_IFSOCK|0777, st_size=0, ...}) = 0
getsockopt(3, SOL_SOCKET, SO_ACCEPTCONN, [0], [4]) = 0
getsockname(3, {sa_family=AF_UNIX}, [128->2]) = 0
geteuid()                               = 1000
sendmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\0AUTH EXTERNAL ", iov_len=15}, {iov_base="31303030", iov_len=8}, {iov_base="\r\nNEGOTIATE_UNIX_FD\r\nBEGIN\r\n", iov_len=28}], msg_iovlen=3, msg_controllen=0, msg_flags=0}, MSG_DONTWAIT|MSG_NOSIGNAL) = 51
getpid()                                = 18105
getpid()                                = 18105
gettid()                                = 18105
getrandom("iA\223,\273]\220\373\332\256\2257>\33\nS", 16, GRND_NONBLOCK) = 16
getpid()                                = 18105
gettid()                                = 18105
getpid()                                = 18105
getpid()                                = 18105
getpid()                                = 18105
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="OK 3174b60bab63e447f489c10c59037"..., iov_len=256}], msg_iovlen=1, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_NOSIGNAL|MSG_CMSG_CLOEXEC) = 52
getpid()                                = 18105
sendmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="l\1\0\1\0\0\0\0\1\0\0\0m\0\0\0\1\1o\0\25\0\0\0/org/fre"..., iov_len=128}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, MSG_DONTWAIT|MSG_NOSIGNAL) = 128
getpid()                                = 18105
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="l\2\1\1\n\0\0\0\1\0\0\0=\0\0\0\6\1s\0\5\0\0\0", iov_len=24}], msg_iovlen=1, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_NOSIGNAL|MSG_CMSG_CLOEXEC) = 24
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base=":1.50\0\0\0\5\1u\0\1\0\0\0\10\1g\0\1s\0\0\7\1s\0\24\0\0\0"..., iov_len=66}], msg_iovlen=1, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_NOSIGNAL|MSG_CMSG_CLOEXEC) = 66
getpid()                                = 18105
sendmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="l\1\0\1B\0\0\0\2\0\0\0\202\0\0\0\1\1o\0\27\0\0\0/org/fre"..., iov_len=152}, {iov_base="\16\0\0\0shutdown:sleep\0\0\5\0\0\0obnam\0\0\0"..., iov_len=66}], msg_iovlen=2, msg_controllen=0, msg_flags=0}, MSG_DONTWAIT|MSG_NOSIGNAL) = 218
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="l\4\1\1\n\0\0\0\2\0\0\0\215\0\0\0\1\1o\0\25\0\0\0", iov_len=24}], msg_iovlen=1, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_NOSIGNAL|MSG_CMSG_CLOEXEC) = 24
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="/org/freedesktop/DBus\0\0\0\2\1s\0\24\0\0\0"..., iov_len=146}], msg_iovlen=1, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_NOSIGNAL|MSG_CMSG_CLOEXEC) = 146
recvmsg(3, {msg_namelen=0}, MSG_DONTWAIT|MSG_NOSIGNAL|MSG_CMSG_CLOEXEC) = -1 EAGAIN (Resource temporarily unavailable)
getpid()                                = 18105
ppoll([{fd=3, events=POLLIN}], 1, {tv_sec=24, tv_nsec=999863000}, NULL, 8) = 1 ([{fd=3, revents=POLLIN}], left {tv_sec=24, tv_nsec=990549613})
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="l\3\1\1\26\0\0\0J\0\0\0]\0\0\0\5\1u\0\2\0\0\0", iov_len=24}], msg_iovlen=1, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_NOSIGNAL|MSG_CMSG_CLOEXEC) = 24
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\6\1s\0\5\0\0\0:1.50\0\0\0\4\1s\0'\0\0\0org.free"..., iov_len=110}], msg_iovlen=1, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_NOSIGNAL|MSG_CMSG_CLOEXEC) = 110
writev(2, [{iov_base="Failed to inhibit: Access denied", iov_len=32}, {iov_base="\n", iov_len=1}], 2Failed to inhibit: Access denied
) = 33
getpid()                                = 18105
getpid()                                = 18105
close(3)                                = 0
exit_group(1) = ?
Scheint so, dass keine Creditails über den Socket gehen können, also der Zugriff zu Dbus geblockt wird und es deswegen nicht funktioniert. Bin mir nicht klar ob das ein Bug ist oder so gewollt.
Habe auch noch keine Idee, ob ich das irgendwie steuern kann.
Rechner / Server Debian sid

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: anacron und systemd-inhibit

Beitrag von rendegast » 30.04.2017 11:17:47

Dieses Script für sich allein gestartet, macht genau was es soll.
Als root gestartet?
Als welcher Benutzer läuft der cron/anacron-Job?

Hier ein wenig herumprobiert,
der normale Benutzer kann kein systemd-inhibit auf ein 'sleep 10' setzen,
der root aber schon.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Benutzeravatar
Profbunny
Beiträge: 592
Registriert: 04.04.2004 11:12:29
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Bautzen

Re: anacron und systemd-inhibit

Beitrag von Profbunny » 01.05.2017 10:31:25

Die Antwort ist recht einfach, aber war nervig zu finden. Wenn das Script von einem Terminal gestartet wird, setzt Policykit die Entsprechenden Zugriffsrechte.
Wenn der Cronjob läuft fehlen dies Rechte und dadurch blockt er die Anfrage an systemd-inhibit.

Die Lösung war, ein eigene pkla für polkit anzulegen:

Code: Alles auswählen

[root@sysiphus: /etc/polkit-1/localauthority/50-local.d] [master L|✔ ] ✔ 
10:30 # cat com.0.enable-inhibit-from-cron.pkla 
[Enable inhibit to be run via cron]
Identity=unix-user:mdomann
Action=org.freedesktop.login1.hibernate-ignore-inhibit;org.freedesktop.login1.inhibit-block-idle;org.freedesktop.login1.inhibit-block-shutdown;org.freedesktop.login1.inhibit-block-sleep;org.freedesktop.login1.inhibit-delay-shutdown;org.freedesktop.login1.inhibit-delay-sleep;org.freedesktop.login1.inhibit-handle-hibernate-key;org.freedesktop.login1.inhibit-handle-lid-switch;org.freedesktop.login1.inhibit-handle-power-key;org.freedesktop.login1.inhibit-handle-suspend-key;org.freedesktop.login1.power-off-ignore-inhibit;org.freedesktop.login1.reboot-ignore-inhibit;org.freedesktop.login1.suspend-ignore-inhibit
ResultAny=yes
ResultInactive=yes
ResultActive=yes
Rechner / Server Debian sid

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: [gelöst] anacron und systemd-inhibit

Beitrag von rendegast » 01.05.2017 13:21:54

Wie hast Du das zusammenkonstruiert?

Ein 'sed' auf Deine Action:

Code: Alles auswählen

Action=
org.freedesktop.login1.hibernate-ignore-inhibit;
org.freedesktop.login1.inhibit-block-idle;
org.freedesktop.login1.inhibit-block-shutdown;
org.freedesktop.login1.inhibit-block-sleep;
org.freedesktop.login1.inhibit-delay-shutdown;
org.freedesktop.login1.inhibit-delay-sleep;
org.freedesktop.login1.inhibit-handle-hibernate-key;
org.freedesktop.login1.inhibit-handle-lid-switch;
org.freedesktop.login1.inhibit-handle-power-key;
org.freedesktop.login1.inhibit-handle-suspend-key;
org.freedesktop.login1.power-off-ignore-inhibit;
org.freedesktop.login1.reboot-ignore-inhibit;
org.freedesktop.login1.suspend-ignore-inhibit
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Benutzeravatar
Profbunny
Beiträge: 592
Registriert: 04.04.2004 11:12:29
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Bautzen

Re: [gelöst] anacron und systemd-inhibit

Beitrag von Profbunny » 01.05.2017 17:16:41

Code: Alles auswählen

mdomann@sysiphus:~$ pkaction | grep inhibit
org.freedesktop.login1.hibernate-ignore-inhibit
org.freedesktop.login1.inhibit-block-idle
org.freedesktop.login1.inhibit-block-shutdown
org.freedesktop.login1.inhibit-block-sleep
org.freedesktop.login1.inhibit-delay-shutdown
org.freedesktop.login1.inhibit-delay-sleep
org.freedesktop.login1.inhibit-handle-hibernate-key
org.freedesktop.login1.inhibit-handle-lid-switch
org.freedesktop.login1.inhibit-handle-power-key
org.freedesktop.login1.inhibit-handle-suspend-key
org.freedesktop.login1.power-off-ignore-inhibit
org.freedesktop.login1.reboot-ignore-inhibit
org.freedesktop.login1.suspend-ignore-inhibit
vermutlich könnte ich einige der Actions entfernen, aber bin froh das das erstmal funktioniert
Rechner / Server Debian sid

Antworten