Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Pomocy przy prostym skrypcie SHUTDOWN
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Polskie forum (Polish) Polish OTW
View previous topic :: View next topic  
Author Message
rybik
n00b
n00b


Joined: 10 Oct 2016
Posts: 0

PostPosted: Mon Oct 10, 2016 3:49 pm    Post subject: Pomocy przy prostym skrypcie SHUTDOWN Reply with quote

Witam

Nie potrafie pisać skryptów a potrzebuję wyłączyć system jako user po kliknięciu na ikonę (bez potwierdzenia zamknięcia systemu).Znalazlem w google stronę

https://fitzcarraldoblog.wordpress.com/2015/09/06/gentoo-linux-run-a-script-at-shutdown-but-not-when-rebooting/

robię skrypt i nadaję mu wykonalność

Code:
#!/bin/bash
if [ `who -r | awk '{print $2}'` = "0" ]; then
  ######################################################################
  # Put Bash commands here to be executed on shutdown but not on reboot.
  ######################################################################
fi
$


i nie odpala się.Otrzymuje komunikat

Code:
$ /etc/local.d/10-run_on_shutdown.stop
/etc/local.d/10-run_on_shutdown.stop: linia 3: błąd składni przy nieoczekiwanym znaczniku `fi'
/etc/local.d/10-run_on_shutdown.stop: linia 3: `fi'


umie ktoś poprawić to,tak by skrypt zadziałał?

Z gory dziekuję
Back to top
View user's profile Send private message
Jacekalex
Guru
Guru


Joined: 17 Sep 2009
Posts: 553

PostPosted: Sat Oct 15, 2016 2:14 am    Post subject: Reply with quote

Nie tędy droga.

Zainteresuj się pakietem sudo.

https://wiki.gentoo.org/wiki/Sudo

Jak zainstalujesz, skonfiguruj, żeby dla twojego usera albo grupy nie żadał hasła, np:

Code:
%wheel localhost=(root) NOPASSWD: /sbin/halt, /sbin/shutdown, /sbin/reboot , /sbin/poweroff

Edycja /etc/sudoers wyłącznie przez polecenie (z uprawnieniami roota):
Code:
EDITOR="{Twój ulubiony edytor tekstowy}" visudo

z konta root, nawet nie próbuj inaczej.

Jak będziesz mógł odpalać poweroff bez hasła, to potem w skrócie na Pulpicie podasz:
Code:
sudo poweroff
jako polecenie, i musi działać.

Możesz też użyć mechanizmu ACPI, np wyłączać kompa przyciskiem power, wymaga to zmodyfikowania skryptu /etc/apci/default.sh.

Przykład:
Code:

...
case "$group" in
   button)
      case "$action" in
         power)
        ######## dodałem osobiście  ########
               /sbin/shutdown -h now;      
         ######### koniec dodanego kawałka  #######

            #/etc/acpi/actions/powerbtn.sh
            ;;

         # if your laptop doesnt turn on/off the display via hardware
         # switch and instead just generates an acpi event, you can force
         # X to turn off the display via dpms.  note you will have to run
         # 'xhost +local:0' so root can access the X DISPLAY.
         #lid)
         #   xset dpms force off
         #   ;;

         *)   log_unhandled $* ;;
      esac
      ;;
...


Pozdro
8)
Back to top
View user's profile Send private message
sebas86
Guru
Guru


Joined: 01 May 2005
Posts: 568
Location: Szczecinek / Szczecin

PostPosted: Sat Oct 22, 2016 9:20 pm    Post subject: Reply with quote

Po wypowiedzi sądzę, że korzystasz z graficznej sesji. Gdybyś jeszcze powiedział z jakiego środowiska graficznego korzystasz można byłoby podać rozwiązanie na tacy.

Masa środowisk, w tak tym popularne jak KDE, Gnome, XFCE, obsługują wyłączanie komputera przez wspólną „szynę” komunikacyjną. Dzisiaj system zawiera kilka usług, które umożliwiają przesyłanie wiadomości, obsługę żądań, tworzenie polityki bezpieczeństwa, nadawanie uprawnień itd. I najczęściej tutaj zaczynają się schody bo startując sesję graficzną trzeba również rozpocząć sesję na potrzeby jednej z tych usług oraz poprawnie ustawić kilka rzeczy.

Na przykładzie XFCE (https://wiki.gentoo.org/wiki/Xfce#Starting_Xfce_without_a_display_manager):
Quote:
When experiencing authorization or permissions issues within xfce4 in a OpenRC profile (symptoms include being unable to open power manager and unable to suspend/hibernate) be sure the sys-auth/consolekit package has been merged with the pm-utils flag set. Then replace the above line in ~/.xinitrc with the following (see this entry on the Gentoo Forums for more information):
FILE ~/.xinitrcStarting xfce4 the right way when invoking startx

Code:
ck-launch-session dbus-launch --sh-syntax --exit-with-session xfce4-session


Jeszcze prościej można rozwiązać sprawę korzystając z popularnych menadżerów logowania (KDM lub GDM), które inicjują taką sesję z automatu.

Jeśli masz działającą sesję i działa zamknięcie poprzez przycisk wyłączania/wylogowania, a potrzebujesz tylko skrypt/ikonkę to wystarczy wysłać przez dbus komunikat w odpowiednie miejsce:
Code:
dbus-send --system --print-reply --dest=org.freedesktop.login1 /org/freedesktop/login1 "org.freedesktop.login1.Manager.PowerOff" boolean:true

lub dla upower:
Code:
dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop


Źródło: http://askubuntu.com/questions/454039/what-command-is-executed-when-shutdown-from-the-graphical-menu-in-14-04
I trochę nowsze jeśli korzystasz z upower (na 99% tak): https://bbs.archlinux.org/viewtopic.php?id=127962

Można też prościej ale to już zależy od środowiska graficznego, w XFCE można łatwo to zrobić poprzez sesję:
Code:
xfce4-session-logout --halt

_________________
Nieważne jaka dystrybucja, ważne, że Linux!
Back to top
View user's profile Send private message
Jacekalex
Guru
Guru


Joined: 17 Sep 2009
Posts: 553

PostPosted: Sun Oct 23, 2016 2:36 am    Post subject: Reply with quote

Moje rozwiązanie działa od lat na Gnome2, Mate, KDE4, KDE5, XFCE, Enlightenment i LXQT.

Po prostu nie korzysta z żadnego API sroodowiska graficznego, tylko z sudo albo acpi, czyli mechanizmów obecnych we wszystkich Linuxach, bez względu na to, czy mają w ogóle środowisko graficzne i jakie mają to środowisko graficzne.


To by było na tyle
8)
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Polskie forum (Polish) Polish OTW All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum