Start up sripto paleidimas

L
  • 27 Spa '14

Turiu skriptą, kuris kas tam tikrą laiko tapą siunčia pranešimą su notify-send komandą. Noriu, kad jis pasileistu iškart užsikrovus kompiuteriui.

mėginau naudoti:
'startup-aplication' nurodant pilną kelia iki skripto
crontab -e su @reboot /kelias/iki/skripto
įdėti skriptą į '/etc/init.d'

tačiau nei vienas iš šių būdų neveikia, nesuprantu kodėl.(skriptas turi +x teises)

T
Techtronic
Mindaugas N.
  • 27 Spa '14

Taip yra todel, kad norint jog veiktu notifications reikia dar ir dbus sesija tureti.

Ja gauti gali tokiu budu:

source /home/useris/.dbus/session-bus/*
notify-send -u urgency -t title body

Daugiau apie tai rasi man dbus-launch

Jeigu leidi is kito userio (tarkim cronjob paleidzia tik is root userio), gali numesti sias teises:

/*
 * gcc -ggdb test.c -o test
 */

#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>

// ziurek id komandos manuala
#define UNPRIV_UID 1001 // pakeisk i savo user uid
#define UNPRIV_GID 100 // pakeisk i savo user gid

int main(int argc, char **argv, char **envp)
{
  // Drop root privilegies
  if (setgid(UNPRIV_GID)!=0) printf("Failed to set nonroot GID\n");
  if (setuid(UNPRIV_UID)!=0) printf("Failed to set nonroot UID\n");

  if( argc == 2 ) {
    char system_str[256];
    snprintf(system_str, 256, "/home/useris/bin/notify.sh \'%s\'", argv[1]);
    system(system_str); 
  }
  return(0);
}

Gali savo pasirasyti tam toolza, cia koda rasi kad veiktu su dbus https://forums.gentoo.org/viewtopic-t-9 ... 7bdc42ee86 kaip teises numesti jau moki.