실행 가능한 바이너리(장치 드라이버)가 있습니다. 성공 코드 0으로 즉시 실행되고 종료됩니다. 한 컴퓨터에서는 pgrep을 사용하여 볼 수 있는 모든 중요한 하위 프로세스를 생성하지만 안타깝게도 다른 컴퓨터에서는 생성하지 않습니다. 실행 결과는 다음 strace
과 같이 끝납니다.
clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f2851597310) = 32167
exit_group(0) = ?
+++ exited with 0 +++
그러나 해당 머신(이 경우 32167)에서는 프로세스를 찾을 수 없습니다.
무엇이 잘못되었는지 수정하는 방법을 모르겠습니다. 아이가 달릴 sudo execsnoop -x
때는 아무것도 나타나지 않습니다 . 소스 코드를 사용할 수 없습니다. (주 목적은 아니지만 복제하지 않고 대신 포그라운드에서 모든 것을 실행하면 좋을 것입니다.) 도움이 된다면 파일은 다음과 같습니다.https://github.com/elmadjian/tobii_4C_for_linux/blob/main/tobii_usb_service/usr/local/sbin/tobiiusbserviced
편집: 출력 끝 strace -f command
:
23747 clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f789577f310) = 23748
23747 exit_group(0) = ?
23748 umask(000) = 022
23748 setsid( <unfinished ...>
23747 +++ exited with 0 +++
23748 <... setsid resumed>) = 23748
23748 brk(NULL) = 0x21bd000
23748 brk(0x21de000) = 0x21de000
23748 openat(AT_FDCWD, "/var/run/tobiiusb/tobiiusbservice.pid", O_WRONLY|O_CREAT|O_TRUNC, 0666) = -1 ENOENT (No such file or directory)
23748 openat(AT_FDCWD, "/etc/localtime", O_RDONLY|O_CLOEXEC) = 3
23748 fstat(3, {st_mode=S_IFREG|0644, st_size=3648, ...}) = 0
23748 fstat(3, {st_mode=S_IFREG|0644, st_size=3648, ...}) = 0
23748 read(3, "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\7\0\0\0\7\0\0\0\0"..., 4096) = 3648
23748 lseek(3, -2321, SEEK_CUR) = 1327
23748 read(3, "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\7\0\0\0\7\0\0\0\0"..., 4096) = 2321
23748 close(3) = 0
23748 socket(AF_UNIX, SOCK_DGRAM|SOCK_CLOEXEC, 0) = 3
23748 connect(3, {sa_family=AF_UNIX, sun_path="/dev/log"}, 110) = -1 ENOENT (No such file or directory)
23748 close(3) = 0
23748 exit_group(1) = ?
23748 +++ exited with 1 +++
답변1
connect(3, {sa_family=AF_UNIX, sun_path="/dev/log"}, 110) = -1 ENOENT (No such file or directory)
syslog에 쓰고 싶지만 누락되었습니다. 시스템에 문제가 있으며 /dev/log
일반적으로 이 파일이 있어야 합니다.