Forums

Skip to content

Advanced search
  • Quick links
    • Unanswered topics
    • Active topics
    • Search
  • FAQ
  • Login
  • Register
  • Board index International Gentoo Users Polskie forum (Polish) Polish OTW
  • Search

Pomocy przy prostym skrypcie SHUTDOWN

Rozmowy nie związane ściśle z Gentoo

Moderator: SlashBeast

Post Reply
  • Print view
Advanced search
4 posts • Page 1 of 1
Author
Message
rybik
n00b
n00b
Posts: 0
Joined: Mon Oct 10, 2016 3:34 pm

Pomocy przy prostym skrypcie SHUTDOWN

  • Quote

Post by rybik » Mon Oct 10, 2016 3:49 pm

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/ ... rebooting/

robię skrypt i nadaję mu wykonalność

Code: Select all

#!/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: Select all

$ /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ę
Top
Jacekalex
Guru
Guru
User avatar
Posts: 554
Joined: Thu Sep 17, 2009 5:18 am

  • Quote

Post by Jacekalex » Sat Oct 15, 2016 2:14 am

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: Select all

%wheel localhost=(root) NOPASSWD: /sbin/halt, /sbin/shutdown, /sbin/reboot , /sbin/poweroff 
Edycja /etc/sudoers wyłącznie przez polecenie (z uprawnieniami roota):

Code: Select all

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: Select all

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: Select all

...
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)
Top
sebas86
Guru
Guru
User avatar
Posts: 571
Joined: Sun May 01, 2005 8:22 am
Location: Szczecinek / Szczecin
Contact:
Contact sebas86
Website

  • Quote

Post by sebas86 » Sat Oct 22, 2016 9:20 pm

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#Start ... ay_manager):
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: Select all

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: Select all

dbus-send --system --print-reply --dest=org.freedesktop.login1 /org/freedesktop/login1 "org.freedesktop.login1.Manager.PowerOff" boolean:true
lub dla upower:

Code: Select all

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/w ... u-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: Select all

xfce4-session-logout --halt
Nieważne jaka dystrybucja, ważne, że Linux!
Top
Jacekalex
Guru
Guru
User avatar
Posts: 554
Joined: Thu Sep 17, 2009 5:18 am

  • Quote

Post by Jacekalex » Sun Oct 23, 2016 2:36 am

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)
Top
Post Reply
  • Print view

4 posts • Page 1 of 1

Return to “Polish OTW”

Jump to
  • Assistance
  • ↳   News & Announcements
  • ↳   Frequently Asked Questions
  • ↳   Installing Gentoo
  • ↳   Multimedia
  • ↳   Desktop Environments
  • ↳   Networking & Security
  • ↳   Kernel & Hardware
  • ↳   Portage & Programming
  • ↳   Gamers & Players
  • ↳   Other Things Gentoo
  • ↳   Unsupported Software
  • Discussion & Documentation
  • ↳   Documentation, Tips & Tricks
  • ↳   Gentoo Chat
  • ↳   Gentoo Forums Feedback
  • ↳   Duplicate Threads
  • International Gentoo Users
  • ↳   中文 (Chinese)
  • ↳   Dutch
  • ↳   Finnish
  • ↳   French
  • ↳   Deutsches Forum (German)
  • ↳   Diskussionsforum
  • ↳   Deutsche Dokumentation
  • ↳   Greek
  • ↳   Forum italiano (Italian)
  • ↳   Forum di discussione italiano
  • ↳   Risorse italiane (documentazione e tools)
  • ↳   Polskie forum (Polish)
  • ↳   Instalacja i sprzęt
  • ↳   Polish OTW
  • ↳   Portuguese
  • ↳   Documentação, Ferramentas e Dicas
  • ↳   Russian
  • ↳   Scandinavian
  • ↳   Spanish
  • ↳   Other Languages
  • Architectures & Platforms
  • ↳   Gentoo on ARM
  • ↳   Gentoo on PPC
  • ↳   Gentoo on Sparc
  • ↳   Gentoo on Alternative Architectures
  • ↳   Gentoo on AMD64
  • ↳   Gentoo for Mac OS X (Portage for Mac OS X)
  • Board index
  • All times are UTC
  • Delete cookies

© 2001–2026 Gentoo Foundation, Inc.

Powered by phpBB® Forum Software © phpBB Limited

Privacy Policy