Archives 2020
#
Ajouter un service à chkconfig
Si en tentant de configurer le démarrage automatique d'un de nos scripts d'init avec chkconfig, on se prend le message suivant :
# chkconfig murmur on Le service murmur ne prend pas en charge chkconfig
Pas de panique ! Cela veut juste dire que dans le script d'init, on a oublié de mettre une ligne de commentaire au début du fichier, contenant :
# chkconfig:
Par exemple, pour murmur, si on ajoute la ligne :
# chkconfig: 2345 55 25
Et qu'on relance le chkconfig on, plus d'erreur. Et on peut vérifier que le service sera bien lancé au démarrage des différents runlevel avec la commande chkconfig --list :
# chkconfig --list murmur 0:arrêt 1:arrêt 2:marche 3:marche 4:marche 5:marche 6:arrêt netconsole 0:arrêt 1:arrêt 2:arrêt 3:arrêt 4:arrêt 5:arrêt 6:arrêt network 0:arrêt 1:arrêt 2:marche 3:marche 4:marche 5:marche 6:arrêt
#
Logs textuels avec systemd
Ayant récemment tenté la migration de Centos 6.5 vers 7.2 via le script d'upgrade redhat-upgrade-tool (celui qu'il est déconseillé d'utiliser en production sur leur wiki, oui, oui), je me suis retrouvée confrontée au problème des logs binaires de systemd. Ce qui n'est pas super pratique quand on doit booter son systeme en mode rescue et qu'on ne dispose pas de tous les outils qu'on voudrait... (Car oui, l'upgrade s'est globalement bien passée, mais il y a eu plusieurs démarrage en mode rescue tout de même).
Mais en farfouillant sur le net, j'ai découvert l'existence d'un package magnifigique, syslog-ng ! Que fait-il ? Tout simplement, il permet de revenir à des logs sous forme de texte là ou systemd les transforme en binaire. Fini les journalctl, re bonjour les grep et tail !
En plus, l'installation est hyper simple. On installe le paquet :
# yum install syslog-ng
Puis un petit edit de /etc/systemd/journald.conf pour y désactiver le storage de logs sous forme binaire :
[Journal] Storage=none
On démarre et active le service, et enjoy !
# systemctl enable syslog-ng.service # systemctl start syslog-ng.service
#
Alternatives system to switch Firefox
Pour mes tests Selenium, j’ai besoin de pouvoir utiliser une version de Firefox qui ne soit pas la dernière. J’ai donc été confrontée au problème suivant : il y a-t-il une commande simple comme alternatives pour passer d’une installation de Firefox à une autre, comme c’est par exemple possible pour java ? La réponse est oui ! Tout d’abord, on télécharge la version de Firefox qui nous intéresse :
# mkdir -p /opt/firefox # wget https://ftp.mozilla.org/pub/firefox/releases/46.0.1/firefox-46.0.1.linux-x86_64.sdk.tar.bz2 # tar -xvf firefox-46.0.1.linux-x86_64.sdk.tar.bz2 # mv firefox-sdk/ firefox-46.0.1
Ensuite, on configure la version par défaut et la version custom dans alternatives :
# alternatives --install /usr/local/bin/firefox firefox /usr/bin/firefox 10 # alternatives --install /usr/local/bin/firefox firefox /opt/firefox/firefox-46.0.1/bin/firefox 20 # alternatives --config firefox There are 2 programs which provide 'firefox'. Selection Command ----------------------------------------------- 1 /usr/bin/firefox + 2 /opt/firefox/firefox-46.0.1/bin/firefox Enter to keep the current selection[+], or type selection number:
Si pour une raison quelconque, on veut retourner à l’état antérieur, il suffira de supprimer les installations de alternatives :
# /usr/sbin/alternatives --remove firefox /opt/firefox/firefox # /usr/sbin/alternatives --remove firefox /usr/bin/firefox
#
Script d'init pour Murmur
Un petit script à mettre dans init.d pour pouvoir lancer Murmur comme un service :### BEGIN INIT INFO # Provides: murmur # Required-Start: $local_fs $remote_fs $network # Required-Stop: $local_fs $remote_fs $network # Short description: Start/Stop Murmur, the voice chat server ### END INIT INFO # chkconfig: 2345 55 25 pidfile=/var/run/murmur/murmur.pid pid=`/bin/cat /var/run/murmur/murmur.pid` case "$1" in start) if [ ! "$pid" ]; then /bin/echo "Starting Murmur ... " /opt/mumble/murmur.x86 fi exit 0 ;; stop) if [ "$pid" ]; then /bin/echo "Shutting down Murmur ... " /bin/kill -9 $pid :> $pidfile fi exit 0 ;; status) /bin/echo -n "Murmur is " if [ "$pid" ]; then /bin/echo "running." exit 0 else /bin/echo "not running!" exit 1 fi ;; restart|reload|force-reload) $0 stop $0 start ;; *) echo "Usage: $0 {start|stop|status|restart|reload|force-reload}" >&2 exit 1 ;; esac
#
Script Pandoc de conversion Markdown vers PDF
Script pour convertir un fichier Markdown en fichier PDF, avec table des matières
#!/bin/bash if [ $# -lt 2 ]; then echo "Syntax: $0" exit -1 fi markdown="$1" pdf="$2" pandoc ${markdown} --variable=author:"Aline" --variable=date:"$(date +%d-%m-%Y)" -N --toc -o ${pdf}
Avec le template Latex par defaut default.latex modifié :
%\documentclass[$if(fontsize)$$fontsize$,$endif$$if(lang)$$lang$,$endif$$if(papersize)$$papersize$,$endif$$for(classoption)$$classoption$$sep$,$endfor$]{$documentclass$} \documentclass[12pt]{$documentclass$} \usepackage[T1]{fontenc} \usepackage{lmodern} \usepackage{amssymb,amsmath} \usepackage{ifxetex,ifluatex} \usepackage{fixltx2e} % provides \textsubscript \usepackage{geometry} %Aline:marges \geometry{verbose,a4paper,tmargin=2.5cm,bmargin=2.5cm,lmargin=2.2cm,rmargin=2.2cm} %aline :style pour que le code soit encadre et colore % % Define new command 'verbatim" which is used to hold the code of any language. % \usepackage{fancyvrb,fancybox,calc} \usepackage[svgnames]{xcolor} \usepackage[style=1,leftmargin=0pt,rightmargin=0pt]{mdframed} %\definecolor{verb_border}{rgb}{0.7,0.7,1} %\definecolor{verb_bg}{rgb}{.95,.96,.97} \let\oldverbatim=\verbatim \let\oldendverbatim=\endverbatim \renewenvironment{verbatim}[1][test] { \begin{mdframed}[linewidth=2,backgroundcolor=gray!10,linecolor=gray, fontcolor=black]\fontsize{10}{10}\sffamily\selectfont \begin{oldverbatim} } { \end{oldverbatim} \end{mdframed} } %fin aline % use upquote if available, for straight quotes in verbatim environments \IfFileExists{upquote.sty}{\usepackage{upquote}}{} \ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex \usepackage[utf8]{inputenc} $if(euro)$ \usepackage{eurosym} $endif$ \else % if luatex or xelatex \ifxetex \usepackage{mathspec} \usepackage{xltxtra,xunicode} \else \usepackage{fontspec} \fi \defaultfontfeatures{Mapping=tex-text,Scale=MatchLowercase} \newcommand{\euro}{€} $if(mainfont)$ \setmainfont{$mainfont$} $endif$ $if(sansfont)$ \setsansfont{$sansfont$} $endif$ $if(monofont)$ \setmonofont[Mapping=tex-ansi]{$monofont$} $endif$ $if(mathfont)$ \setmathfont(Digits,Latin,Greek){$mathfont$} $endif$ \fi % use microtype if available \IfFileExists{microtype.sty}{\usepackage{microtype}}{} $if(geometry)$ \usepackage[$for(geometry)$$geometry$$sep$,$endfor$]{geometry} $endif$ $if(natbib)$ \usepackage{natbib} \bibliographystyle{$if(biblio-style)$$biblio-style$$else$plainnat$endif$} $endif$ $if(biblatex)$ \usepackage{biblatex} $if(biblio-files)$ \bibliography{$biblio-files$} $endif$ $endif$ $if(listings)$ \usepackage{listings} $endif$ $if(lhs)$ \lstnewenvironment{code}{\lstset{language=Haskell,basicstyle=\small\ttfamily}}{} $endif$ $if(highlighting-macros)$ $highlighting-macros$ $endif$ $if(verbatim-in-note)$ \usepackage{fancyvrb} $endif$ $if(tables)$ \usepackage{longtable,booktabs} $endif$ $if(graphics)$ \usepackage{graphicx} % Redefine \includegraphics so that, unless explicit options are % given, the image width will not exceed the width of the page. % Images get their normal width if they fit onto the page, but % are scaled down if they would overflow the margins. \makeatletter \def\ScaleIfNeeded{% \ifdim\Gin@nat@width>\linewidth \linewidth \else \Gin@nat@width \fi } \makeatother \let\Oldincludegraphics\includegraphics {% \catcode`\@=11\relax% \gdef\includegraphics{\@ifnextchar[{\Oldincludegraphics}{\Oldincludegraphics[width=\ScaleIfNeeded]}}% }% $endif$ \ifxetex \usepackage[setpagesize=false, % page size defined by xetex unicode=false, % unicode breaks when used with xetex xetex]{hyperref} \else \usepackage[unicode=true]{hyperref} \fi \hypersetup{breaklinks=true, bookmarks=true, pdfauthor={$author-meta$}, pdftitle={$title-meta$}, colorlinks=true, citecolor=$if(citecolor)$$citecolor$$else$blue$endif$, urlcolor=$if(urlcolor)$$urlcolor$$else$blue$endif$, linkcolor=$if(linkcolor)$$linkcolor$$else$magenta$endif$, pdfborder={0 0 0}} \urlstyle{same} % don't use monospace font for urls $if(links-as-notes)$ % Make links footnotes instead of hotlinks: \renewcommand{\href}[2]{#2\footnote{\url{#1}}} $endif$ $if(strikeout)$ \usepackage[normalem]{ulem} % avoid problems with \sout in headers with hyperref: \pdfstringdefDisableCommands{\renewcommand{\sout}{}} $endif$ \setlength{\parindent}{0pt} \setlength{\parskip}{6pt plus 2pt minus 1pt} \setlength{\emergencystretch}{3em} % prevent overfull lines $if(numbersections)$ \setcounter{secnumdepth}{5} $else$ \setcounter{secnumdepth}{0} $endif$ $if(verbatim-in-note)$ \VerbatimFootnotes % allows verbatim text in footnotes $endif$ $if(lang)$ \ifxetex \usepackage{polyglossia} \setmainlanguage{$mainlang$} \else \usepackage[$lang$]{babel} \fi $endif$ $if(title)$ \title{$title$} $endif$ $if(subtitle)$ \subtitle{$subtitle$} $endif$ \author{$for(author)$$author$$sep$ \and $endfor$} \date{$date$} $for(header-includes)$ $header-includes$ $endfor$ \begin{document} $if(title)$ \maketitle $endif$ $if(abstract)$ \begin{abstract} $abstract$ \end{abstract} $endif$ $for(include-before)$ $include-before$ $endfor$ $if(toc)$ { \hypersetup{linkcolor=black} \setcounter{tocdepth}{$toc-depth$} \clearpage \tableofcontents \clearpage } $endif$ $body$ $if(natbib)$ $if(biblio-files)$ $if(biblio-title)$ $if(book-class)$ \renewcommand\bibname{$biblio-title$} $else$ \renewcommand\refname{$biblio-title$} $endif$ $endif$ \bibliography{$biblio-files$} $endif$ $endif$ $if(biblatex)$ \printbibliography$if(biblio-title)$[title=$biblio-title$]$endif$ $endif$ $for(include-after)$ $include-after$ $endfor$ \end{document}