wah belum ada yang respon ya...sundul2 ah...
nah, maaf nih...suwer, beneran saya gak bisa programming. tapi saya iseng2 lihat di src-nya, tepatnya di gbilling.c ada block script:
Code:
/**
* shutdown client di unix/linux
*
* based on action.c by the GShutdown (http://gshutdown.tuxfamily.org)
* this is a modified version!!! (ajhwb)
*
* params: @mode = mode control client
* return: TRUE jika berhasil, FALSE jika gagal.
*/
static gboolean
control_client_unix (GbillingControl mode)
{
g_return_val_if_fail (mode >= GBILLING_CONTROL_LOGOFF &&
mode <= GBILLING_CONTROL_SHUTDOWN, FALSE);
/* TODO: gdk_x11_screen_get_window_manager_name() */
gchar *wm = detect_window_manager ();
g_return_val_if_fail (wm != NULL, FALSE);
gint desktop;
/* detect_window_manager() return UTF-8 string?, auu ahh ;[ */
if (!g_utf8_collate (wm, "Metacity"))
desktop = DESKTOP_GNOME;
else if (!g_utf8_collate (wm, "KWin"))
desktop = DESKTOP_KDE;
else if (!g_utf8_collate (wm, "Xfwm4"))
desktop = DESKTOP_XFCE;
else
{
gbilling_debug ("control_client_unix(): unknown window manager %s\n", wm);
g_free (wm);
return FALSE;
}
g_free (wm);
gchar cmd[32], act[64];
switch (desktop)
{
case DESKTOP_GNOME:
if (mode == GBILLING_CONTROL_RESTART)
snprintf (cmd, sizeof(cmd), "SET_LOGOUT_ACTION REBOOT");
else if (mode == GBILLING_CONTROL_SHUTDOWN)
snprintf (cmd, sizeof(cmd), "SET_LOGOUT_ACTION HALT");
else
return FALSE;
snprintf (act, sizeof(act), "gdmflexiserver -a --command=\"%s\"",
cmd);
run_command (act);
break;
nah di section :
case DESKTOP_GNOME:
if (mode == GBILLING_CONTROL_RESTART)
snprintf (cmd, sizeof(cmd), "SET_LOGOUT_ACTION REBOOT");
else if (mode == GBILLING_CONTROL_SHUTDOWN)
snprintf (cmd, sizeof(cmd), "SET_LOGOUT_ACTION HALT");
else
return FALSE;
snprintf (act, sizeof(act), "gdmflexiserver -a --command=\"%s\"",
cmd);
run_command (act);
break;mungkinkah petunjuknya ada disini? btw saya pake client (gnome) Ubuntu 9.10. Mungkin ada rekans2 yg lain pake desktop manager berbeda mengalami hal yg sama?